fundo
Hoje (ou ontem) é (ou era) 23/11 ou dia de Fibonacci! Que melhor maneira de comemorar do que fazer um bolo de fibonacci?
Exemplos
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
Desafio
Você não está realmente fazendo um bolo, apenas as velas, porque eu não posso criar um bolo
Para fazer o bolo, você deve primeiro obter os primeiros n
números de fibonacci classificados em ordem crescente. A i
altura da vela ( ) é determinada pelo valor do número atual de fibonacci. As velas são separadas por um sublinhado ( _
).
O bolo deve ser simétrico. Portanto, as velas devem ser sacudidas e concatenadas.
Exemplo de construção
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
Números de referência de Fibonacci
Para referência, aqui estão os 15 primeiros números de fibonacci. Neste desafio, você estará começando em 1
.
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610
Respostas:
Pitão, 31 bytes
Experimente online: Demonstração
Explicação:
fonte
J, 58 bytes
Usos
(%-.-*:)t.
para geração de Fibonacci. A explicação pode vir um pouco mais tarde.Uso:
Experimente online aqui.
fonte
CJam,
4139 bytesIsso imprime uma boa quantidade de espaços em branco à esquerda. Experimente online no intérprete CJam .
Como funciona
fonte
TeaScript,
938476 + 1 = 77 bytes+1 byte para "As entradas são números?" caixa de seleção
Versão não destruída:
Obrigado a @ Vɪʜᴀɴ pelas dicas.
fonte
r
função em vez deA(x)f(0)
, por exemplo,r(x)m(#
Array.dupe()
faz, parece não funcionar?Python 2, 117 bytes
A idéia é simples: gerar a imagem em colunas indo de baixo para cima, da esquerda para a direita, com a direita espelhada na metade inversa da esquerda. As colunas são geradas iterando a recorrência de Fibonacci, em cadeias de caracteres de
i
's, intercaladas com_
' s para a linha inferior.Para imprimir a imagem com colunas começando de baixo, precisamos girá-la, o que significa transpor e reverter. Infelizmente, o Python não tem uma maneira simples de transpor uma matriz de linhas de comprimento desigual. O interno
zip
trunca para a linha mais curta. Isso usa omap(None,_)
truque, mas precisa converter todos osNone
espaços para depois.fonte
Haskell,
182176 bytesLigue
c
.(
f
roubado descaradamente de /programming/232861/fibonacci-code-golf )fonte
flip replicate 'i'.(f!!)
por\x->[1..f!!x]>>"i"
.f
funciona ainda ...Matlab,
172152 bytesInfelizmente, o Matlab não tem uma construção na função Fibonacci e a manipulação de strings é um pouco complicada.
Com quebras de linha:
fonte
Ruby,
151146142137132 bytes137 bytes
142 bytes
146 bytes
151 bytes
Ungolfed:
Uso:
Saída:
fonte
Python 2, 213
Economizou 12 bytes graças ao DSM.
Versão não destruída.
fonte