avva: (moose)
avva ([personal profile] avva) wrote2013-05-13 01:17 am

альтернатива физзбаззу

Цитирую из подзамочной записи с разрешения автора, который работает в американской компании и интервьюирует программистов:
Интесная закономерность выявляется. Мы начинаем интервью с того, что просим кандидата прочитать вот такой код, и сказать, что он делает. Как бы он назвал эту функцию?

private static int ok(int a, int b) {
   while (a >= b) a -= b;
   return a;
}

Пока результаты такие, что после этого вопроса интервью можно заканчивать. Если человек отвечает нормально на этот вопрос, то и дальше отвечает нормально. Если вообще близко не может понять о чем речь, то дальше только хуже.

[identity profile] d-ohrenelli.livejournal.com 2013-05-13 01:18 pm (UTC)(link)
У вас действительно проблема с длинными строками и (скорее всего) с переполнением счетчика строк на очень больших файлах.
Условие корректной работы не выполнено, увы.

[identity profile] dism.livejournal.com 2013-05-13 01:26 pm (UTC)(link)
Ну я не пытался выполнить все условия, я пытался наступить на описываемые грабли - и не понял где люди на них наступали. :)

А с переполнением счетчика проблем нет - он переполняется, конечно, но четность/нечетность не сбивается ;)

[identity profile] d-ohrenelli.livejournal.com 2013-05-13 01:31 pm (UTC)(link)
Если он беззнаковый, то да.
А если он просто знаковое целое - то по стандарту если я правильно помню получаем неопределенное поведение.
Я поэтому и написал скорее всего.

[identity profile] dism.livejournal.com 2013-05-13 01:45 pm (UTC)(link)
Да, черт, в стандарте и правда UB, а у меня был знаковый int. :)

[identity profile] d-ohrenelli.livejournal.com 2013-05-13 01:34 pm (UTC)(link)
Плюс ко всему если вашу программу скомпилировали на gcc с опцией -ftrapv то оно таки упадет.