Страница 1 из 3
тонкий программисткий юмор
Добавлено: 24 окт 2003, 15:23
ajkj3em
хороший (я бы даже сказал панковский) вопрос для письменного (pen/paper) интервью :
что вернет f(27), где
Код: Выделить всё
int f(int v)
{
if (v & 1)
return f(3*v+1);
return f(v/2);
}
ps. задача ессно с под**кой, типа на общую эрудицию ..

Добавлено: 24 окт 2003, 15:33
папа Карло
я тупой... у меня вернет 13, а что?

Добавлено: 24 окт 2003, 15:39
vg
Я тоже не далеко от Фридриха Марксовича.
"Компилировал" в голове, на компе не проверял,
но тоже получилось 13. Не так? В чём прикол-то?
Добавлено: 24 окт 2003, 15:41
ajkj3em
сорри, опечатки. рекурсия - это раз, v/2 для четных - это два
Добавлено: 24 окт 2003, 15:51
vg
Чистая бумага,
я бы сказал, что не красиво вначале - одно писать,
а затем редактировать. Не честно. Ты редактировал свой пост
два раза. Что было в начале, когда мы с Карлой смотрели в первый раз?
Добавлено: 24 окт 2003, 15:59
папа Карло
drain bamage писал(а):сорри, опечатки. рекурсия - это раз, v/2 для четных - это два
дык это все в корне меняет

надо считать да?

блин злодей

)) время будет подумаю

Добавлено: 24 окт 2003, 16:07
ajkj3em
папа Карло писал(а):drain bamage писал(а):сорри, опечатки. рекурсия - это раз, v/2 для четных - это два
дык это все в корне меняет

надо считать да?

блин злодей

)) время будет подумаю

подсказываю, отец - задачка на эрудицию
либо ты знаешь о чем речь, либо будешь считать

Добавлено: 24 окт 2003, 16:16
папа Карло
конечно не знаю.

я не программист, откуда мне знать

сичтать буду, на бумажке, как тупой.

Добавлено: 24 окт 2003, 18:27
Marmot
stack кончится, imho
Добавление:
... если конечно inlining-а не будет...
Но не вернётся по-любому...
Добавлено: 24 окт 2003, 19:44
ajkj3em
Marmot писал(а):stack кончится, imho
Добавление:
... если конечно inlining-а не будет...
Но не вернётся по-любому...
yep .. теперь говори почему
Добавлено: 24 окт 2003, 19:48
Marmot
drain bamage писал(а):Marmot писал(а):stack кончится, imho
Добавление:
... если конечно inlining-а не будет...
Но не вернётся по-любому...
yep .. теперь говори почему
Да ладно тебе, пускай пацаны подумают
ЗЫ
У меня в продукте Tail Call Elimination - это одна из фич, btw
ЗЗЫ
Или ты решил что я это запускал

Добавлено: 24 окт 2003, 23:23
vg
Чистая-пречистая бумага, отвечает пацан.
Ну, не вернётся, т.к. в любом случае (чёт/нечет) следует рекурсивный
вызов f.
Ну и что? Прикол-то в чём? Где смеяться?
Добавлено: 25 окт 2003, 08:14
Marmot
vg писал(а):Чистая-пречистая бумага, отвечает пацан.
Ну, не вернётся, т.к. в любом случае (чёт/нечет) следует рекурсивный
вызов f.
Ну и что? Прикол-то в чём? Где смеяться?
Прикол в том, что некоторые местные "крутые пацаны" собирались нам это значение посчитать

Добавлено: 25 окт 2003, 09:46
ilid
Ну да, достаточно просто пристально посмотреть. Я например не знал что if(v & 1) - проверка на чётность интеджера

ну да век живи век учись. Наколько я понял если у тебя число чётное - делим пополам, а нечётное - превращаем в чётное, причём намного большее чем исходное. Если начать с 27 - то скорее всего мало того что будет вечный луп, я думаю что число будет расти пока не упрётся в максимум 31 бит после чего станет отрицательным.
Добавлено: 25 окт 2003, 10:53
ajkj3em
vg писал(а):Чистая-пречистая бумага, отвечает пацан.
Ну, не вернётся, т.к. в любом случае (чёт/нечет) следует рекурсивный
вызов f.
Ну и что? Прикол-то в чём? Где смеяться?
прикол в том, что 3*n+1 не есть нечет.