тонкий программисткий юмор

Все, что вы хотели знать о программизме, но боялись спросить.
Аватара пользователя
ajkj3em
Маньяк
Сообщения: 2063
Зарегистрирован: 12 ноя 2006, 06:53

тонкий программисткий юмор

Сообщение ajkj3em »

хороший (я бы даже сказал панковский) вопрос для письменного (pen/paper) интервью :

что вернет f(27), где

Код: Выделить всё

int f(int v)
{
  if (v & 1)
    return f(3*v+1);
  return f(v/2);
}
ps. задача ессно с под**кой, типа на общую эрудицию .. :)
Последний раз редактировалось ajkj3em 24 окт 2003, 15:45, всего редактировалось 2 раза.
Аватара пользователя
папа Карло
Шарманщик
Сообщения: 8565
Зарегистрирован: 17 фев 2003, 15:04
Откуда: НН -> BC -> WA -> UT -> CA

Сообщение папа Карло »

я тупой... у меня вернет 13, а что? :)
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Сообщение vg »

Я тоже не далеко от Фридриха Марксовича.

"Компилировал" в голове, на компе не проверял,
но тоже получилось 13. Не так? В чём прикол-то?
Аватара пользователя
ajkj3em
Маньяк
Сообщения: 2063
Зарегистрирован: 12 ноя 2006, 06:53

Сообщение ajkj3em »

сорри, опечатки. рекурсия - это раз, v/2 для четных - это два
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Сообщение vg »

Чистая бумага,
я бы сказал, что не красиво вначале - одно писать,
а затем редактировать. Не честно. Ты редактировал свой пост
два раза. Что было в начале, когда мы с Карлой смотрели в первый раз?
Аватара пользователя
папа Карло
Шарманщик
Сообщения: 8565
Зарегистрирован: 17 фев 2003, 15:04
Откуда: НН -> BC -> WA -> UT -> CA

Сообщение папа Карло »

drain bamage писал(а):сорри, опечатки. рекурсия - это раз, v/2 для четных - это два
дык это все в корне меняет :) надо считать да? :) блин злодей :))) время будет подумаю :)
Аватара пользователя
ajkj3em
Маньяк
Сообщения: 2063
Зарегистрирован: 12 ноя 2006, 06:53

Сообщение ajkj3em »

папа Карло писал(а):
drain bamage писал(а):сорри, опечатки. рекурсия - это раз, v/2 для четных - это два
дык это все в корне меняет :) надо считать да? :) блин злодей :))) время будет подумаю :)
подсказываю, отец - задачка на эрудицию
либо ты знаешь о чем речь, либо будешь считать :)
Аватара пользователя
папа Карло
Шарманщик
Сообщения: 8565
Зарегистрирован: 17 фев 2003, 15:04
Откуда: НН -> BC -> WA -> UT -> CA

Сообщение папа Карло »

конечно не знаю. :) я не программист, откуда мне знать :) сичтать буду, на бумажке, как тупой. :)
Аватара пользователя
Marmot
Графоман
Сообщения: 39274
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

Сообщение Marmot »

stack кончится, imho

Добавление:
... если конечно inlining-а не будет...
Но не вернётся по-любому...
Аватара пользователя
ajkj3em
Маньяк
Сообщения: 2063
Зарегистрирован: 12 ноя 2006, 06:53

Сообщение ajkj3em »

Marmot писал(а):stack кончится, imho

Добавление:
... если конечно inlining-а не будет...
Но не вернётся по-любому...
yep .. теперь говори почему
Аватара пользователя
Marmot
Графоман
Сообщения: 39274
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

Сообщение Marmot »

drain bamage писал(а):
Marmot писал(а):stack кончится, imho

Добавление:
... если конечно inlining-а не будет...
Но не вернётся по-любому...
yep .. теперь говори почему
Да ладно тебе, пускай пацаны подумают :lol:

ЗЫ
У меня в продукте Tail Call Elimination - это одна из фич, btw

ЗЗЫ
Или ты решил что я это запускал :lol:
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Сообщение vg »

Чистая-пречистая бумага, отвечает пацан.

Ну, не вернётся, т.к. в любом случае (чёт/нечет) следует рекурсивный
вызов f.
Ну и что? Прикол-то в чём? Где смеяться?
Аватара пользователя
Marmot
Графоман
Сообщения: 39274
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

Сообщение Marmot »

vg писал(а):Чистая-пречистая бумага, отвечает пацан.

Ну, не вернётся, т.к. в любом случае (чёт/нечет) следует рекурсивный
вызов f.
Ну и что? Прикол-то в чём? Где смеяться?
Прикол в том, что некоторые местные "крутые пацаны" собирались нам это значение посчитать :lol:
ilid
Завсегдатай
Сообщения: 255
Зарегистрирован: 19 мар 2003, 13:31

Сообщение ilid »

Ну да, достаточно просто пристально посмотреть. Я например не знал что if(v & 1) - проверка на чётность интеджера :) ну да век живи век учись. Наколько я понял если у тебя число чётное - делим пополам, а нечётное - превращаем в чётное, причём намного большее чем исходное. Если начать с 27 - то скорее всего мало того что будет вечный луп, я думаю что число будет расти пока не упрётся в максимум 31 бит после чего станет отрицательным.
Аватара пользователя
ajkj3em
Маньяк
Сообщения: 2063
Зарегистрирован: 12 ноя 2006, 06:53

Сообщение ajkj3em »

vg писал(а):Чистая-пречистая бумага, отвечает пацан.

Ну, не вернётся, т.к. в любом случае (чёт/нечет) следует рекурсивный
вызов f.
Ну и что? Прикол-то в чём? Где смеяться?
прикол в том, что 3*n+1 не есть нечет.
Последний раз редактировалось ajkj3em 25 окт 2003, 13:36, всего редактировалось 1 раз.
Ответить