Фон
Сегодня (или вчера) сегодня (или было) 11/23 или день Фибоначчи! Что может быть лучше, чем приготовить торт Фибоначчи?
Примеры
3
ii
i_i_ii_i_i
8
ii
ii
ii
ii
ii
ii
ii
ii
i ii i
i ii i
i ii i
i ii i
i ii i
i i ii i i
i i ii i i
i i ii i i
i i i ii i i i
i i i ii i i i
i i i i ii i i i i
i i i i i ii i i i i i
i_i_i_i_i_i_i_ii_i_i_i_i_i_i_i
Вызов
Ты на самом деле не делаешь торт, только свечи, потому что я не могу сделать торт
Чтобы сделать торт, вы должны сначала получить первые n
числа Фибоначчи, отсортированные по возрастанию. Высота свечи ( i
) определяется значением текущего числа Фибоначчи. Свечи разделены подчеркиванием ( _
).
Торт должен быть симметричным. Таким образом, свечи должны быть перевернуты и соединены.
Пример конструкции
Input: 6
First 6 Fibonacci Numbers: 1, 1, 2, 3, 5, 8
Candle heights:
i
i
i
i i
i i
i i i
i i i i
i i i i i i
-----------
1 1 2 3 5 8
Output would be:
ii
ii
ii
i ii i
i ii i
i i ii i i
i i i ii i i i
i_i_i_i_i_ii_i_i_i_i_i
Справочные числа Фибоначчи
Для справки, вот первые 15 чисел Фибоначчи. В этом испытании вы начнете с 1
.
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610
Ответы:
Pyth, 31 байт
Попробуйте онлайн: демонстрация
Объяснение:
источник
J, 58 байт
Пользы
(%-.-*:)t.
для поколения Фибоначчи. Объяснение может прийти чуть позже.Использование:
Попробуйте это онлайн здесь.
источник
CJam,
4139 байтЭто печатает изрядное количество ведущих пробелов. Попробуйте онлайн в интерпретаторе CJam .
Как это устроено
источник
TeaScript,
938476 + 1 = 77 байт+1 байт для "Входы - это числа?" флажок
Безголовая версия:
Спасибо @ Vɪʜᴀɴ за советы.
источник
r
функцию вместоA(x)f(0)
, напримерr(x)m(#
Array.dupe()
, это не похоже на работу?Python 2, 117 байт
Идея проста: создать изображение в столбцах, идущих снизу вверх, слева направо, с зеркальной правой половиной, противоположной левой. Столбцы генерируются путем повторения повторения Фибоначчи в строках
i
's, с вкраплениями_
' s 'для нижней строки.Чтобы напечатать картинку с колонками, начиная снизу, нам нужно повернуть ее, что означает перемещение и реверсирование. К сожалению, в Python нет простого способа транспонировать массив строк неравной длины. Встроенные
zip
обрезки до самой короткой строки. Это используетmap(None,_)
хитрость, ноNone
впоследствии необходимо преобразовать все в пробелы.источник
Haskell,
182176 байтВызов
c
.(
f
бесстыдно похищен с /programming/232861/fibonacci-code-golf )источник
flip replicate 'i'.(f!!)
на\x->[1..f!!x]>>"i"
.f
Matlab,
172152 байтаК сожалению, Matlab не имеет встроенной функции Фибоначчи, и управление строками немного сложное.
С переносами строк:
источник
Рубин,
151146142137132 байт137 байт
142 байта
146 байт
151 байт
Ungolfed:
Использование:
Выход:
источник
Python 2, 213
Сохранено 12 байтов благодаря DSM.
Безголовая версия.
источник