Здравствуйте, Laurel, Вы писали:
L>Здравствуйте, Konstantin Nikolaenko, Вы писали:
БП>>>>Правильный ответ 195
KN>>Оригинал задачи (http://www.itasoftware.com/careers/programmers-archive.php)
KN>>Так что, "сращивать" девятки нельзя (типа 99, 999 ...). А тут уже понакодировали алгоритмов с учетом "сращивания".
L>Без сращивания и говорить-то не о чем. L>Я дал студентам лабу про девятки (курс про перебор), а чтобы с RSDN не таскали чужой код, несколько дополнительных ограничений ввел, в том числе запрет "сращивания". L>Сделали за пару дней.
Тоже мне...
Имея готовое програмное решение, которое тут проскакивало, достаточно легко его упростить и выбросить лишний цикл перебора срощенных элементов.
Студенты — народ изобретательный, особенно если это будущие инженеры и если они слишком ленивые чтобы что-то делать
Здравствуйте, Less, Вы писали:
L>Студенты — народ изобретательный, особенно если это будущие инженеры и если они слишком ленивые чтобы что-то делать
А для этих целей есть усложнения задачи. Например, вместо девяток — цифры 1..9.
Или пусть построят функцию: минимальное число, непредставимое выражением из одной 1 / двух 2 и т.п.
Здравствуйте, Less, Вы писали:
L>>Сделали за пару дней.
L>Тоже мне... L>Имея готовое програмное решение, которое тут проскакивало, достаточно легко его упростить и выбросить лишний цикл перебора срощенных элементов.
L>Студенты — народ изобретательный, особенно если это будущие инженеры и если они слишком ленивые чтобы что-то делать
Ленивые, конечно, поэтому я внимательно отслеживаю, чтобы не сдавались программы "похожие" на появляющиеся здесь...
Здравствуйте, Трурль, Вы писали:
Т>А вот самое красивое решение, что я видел Т>a:*|8{x,,?,//x{x y/:'|x}/+;*;%)}/,-9 9.0 Т>f:{+/j=!#j@:<j:?j@:&x=j:_ x@:&~0>x} Т>f a
Т>195
А!!!! Какой ужас!!!
Краткость — не всегда сестра таланта.
Здравствуйте, brainhaze, Вы писали:
B>Несколько лет назад увидел объявление о приеме на работу: всякий, предложивший решение на нижеследующую задачу (математическое или программное), будет безоговорочно принят. Так вот она, задача:
B>Назовите наименьшее целое число, которое нельзя выразить девятью девятками. Возможно использование арифметических операций (+, -, *, /) и скобок «(» и «)» для выражения чисел.
B>Вот так вот элегантно. Я эту задачку оставил на форуме компании, и скоро народ стал предлагать решения. Можно руководствоваться перебором (начиная с нуля, выражать все последующие целые), но на удивление большие числа можно получить таким образом. Некоторые варганили программки на Яве, некоторые пытались вывести решение математически.
B>Идея девяти девяток в'елась в подсознание. Об этом говорили за обедом, или встречаясь на улице. Много месяцев спустя в голову приходили новые идеи и алгоритмы, но решения так и не нашлось. Задачка оказалась редкостным «мозговым вирусом».
B>И это в технической фирме. Которая если и не первая, то по крайней мере в первой пятерке в своей области. А какая-то непонятная SW фирма такого требует только для приема на работу! Почему-то чувствуешь себя очень тупым и ненужным.
B>А вы как думаете, какое наименьшее число нельзя выразить подобным образом?
B>http://brainhaze.blogspot.com/2004/09/blog-post_13.html
Здравствуйте, kof, Вы писали:
kof>Здравствуйте, brainhaze, Вы писали:
kof>о девяти девятках kof>по-моему меньше при помощи арифметичских операций нельзя
А можно перед тем, как присылать свой ответ, остальные ответы прочитать? Там уже было и насчёт целых чисел вообще, и насчёт неотрицательных тоже.