Все, что вы хотели знать о программизме, но боялись спросить.
ajkj3em
Маньяк
Сообщения: 2063 Зарегистрирован: 12 ноя 2006, 06:53
Сообщение
ajkj3em » 24 окт 2003, 15:23
хороший (я бы даже сказал панковский) вопрос для письменного (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
Сообщение
папа Карло » 24 окт 2003, 15:33
я тупой... у меня вернет 13, а что?
vg
Маньяк
Сообщения: 2803 Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага
Сообщение
vg » 24 окт 2003, 15:39
Я тоже не далеко от Фридриха Марксовича.
"Компилировал" в голове, на компе не проверял,
но тоже получилось 13. Не так? В чём прикол-то?
ajkj3em
Маньяк
Сообщения: 2063 Зарегистрирован: 12 ноя 2006, 06:53
Сообщение
ajkj3em » 24 окт 2003, 15:41
сорри, опечатки. рекурсия - это раз, v/2 для четных - это два
vg
Маньяк
Сообщения: 2803 Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага
Сообщение
vg » 24 окт 2003, 15:51
Чистая бумага,
я бы сказал, что не красиво вначале - одно писать,
а затем редактировать. Не честно. Ты редактировал свой пост
два раза. Что было в начале, когда мы с Карлой смотрели в первый раз?
папа Карло
Шарманщик
Сообщения: 8565 Зарегистрирован: 17 фев 2003, 15:04
Откуда: НН -> BC -> WA -> UT -> CA
Сообщение
папа Карло » 24 окт 2003, 15:59
drain bamage писал(а): сорри, опечатки. рекурсия - это раз, v/2 для четных - это два
дык это все в корне меняет
надо считать да?
блин злодей
)) время будет подумаю
ajkj3em
Маньяк
Сообщения: 2063 Зарегистрирован: 12 ноя 2006, 06:53
Сообщение
ajkj3em » 24 окт 2003, 16:07
папа Карло писал(а): drain bamage писал(а): сорри, опечатки. рекурсия - это раз, v/2 для четных - это два
дык это все в корне меняет
надо считать да?
блин злодей
)) время будет подумаю
подсказываю, отец - задачка на эрудицию
либо ты знаешь о чем речь, либо будешь считать
папа Карло
Шарманщик
Сообщения: 8565 Зарегистрирован: 17 фев 2003, 15:04
Откуда: НН -> BC -> WA -> UT -> CA
Сообщение
папа Карло » 24 окт 2003, 16:16
конечно не знаю.
я не программист, откуда мне знать
сичтать буду, на бумажке, как тупой.
Marmot
Графоман
Сообщения: 39274 Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:
Сообщение
Marmot » 24 окт 2003, 18:27
stack кончится, imho
Добавление:
... если конечно inlining-а не будет...
Но не вернётся по-любому...
ajkj3em
Маньяк
Сообщения: 2063 Зарегистрирован: 12 ноя 2006, 06:53
Сообщение
ajkj3em » 24 окт 2003, 19:44
Marmot писал(а): stack кончится, imho
Добавление:
... если конечно inlining-а не будет...
Но не вернётся по-любому...
yep .. теперь говори почему
Marmot
Графоман
Сообщения: 39274 Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:
Сообщение
Marmot » 24 окт 2003, 19:48
drain bamage писал(а): Marmot писал(а): stack кончится, imho
Добавление:
... если конечно inlining-а не будет...
Но не вернётся по-любому...
yep .. теперь говори почему
Да ладно тебе, пускай пацаны подумают
ЗЫ
У меня в продукте Tail Call Elimination - это одна из фич, btw
ЗЗЫ
Или ты решил что я это запускал
vg
Маньяк
Сообщения: 2803 Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага
Сообщение
vg » 24 окт 2003, 23:23
Чистая-пречистая бумага, отвечает пацан.
Ну, не вернётся, т.к. в любом случае (чёт/нечет) следует рекурсивный
вызов f.
Ну и что? Прикол-то в чём? Где смеяться?
Marmot
Графоман
Сообщения: 39274 Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:
Сообщение
Marmot » 25 окт 2003, 08:14
vg писал(а): Чистая-пречистая бумага, отвечает пацан.
Ну, не вернётся, т.к. в любом случае (чёт/нечет) следует рекурсивный
вызов f.
Ну и что? Прикол-то в чём? Где смеяться?
Прикол в том, что некоторые местные "крутые пацаны" собирались нам это значение посчитать
ilid
Завсегдатай
Сообщения: 255 Зарегистрирован: 19 мар 2003, 13:31
Сообщение
ilid » 25 окт 2003, 09:46
Ну да, достаточно просто пристально посмотреть. Я например не знал что if(v & 1) - проверка на чётность интеджера
ну да век живи век учись. Наколько я понял если у тебя число чётное - делим пополам, а нечётное - превращаем в чётное, причём намного большее чем исходное. Если начать с 27 - то скорее всего мало того что будет вечный луп, я думаю что число будет расти пока не упрётся в максимум 31 бит после чего станет отрицательным.
ajkj3em
Маньяк
Сообщения: 2063 Зарегистрирован: 12 ноя 2006, 06:53
Сообщение
ajkj3em » 25 окт 2003, 10:53
vg писал(а): Чистая-пречистая бумага, отвечает пацан.
Ну, не вернётся, т.к. в любом случае (чёт/нечет) следует рекурсивный
вызов f.
Ну и что? Прикол-то в чём? Где смеяться?
прикол в том, что 3*n+1 не есть нечет.
Последний раз редактировалось
ajkj3em 25 окт 2003, 13:36, всего редактировалось 1 раз.