Antecedentes
¡Hoy (o ayer) es (o fue) 23/11 o día de Fibonacci! ¿Qué mejor manera de celebrar que hacer un pastel de fibonacci?
Ejemplos
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
Desafío
Realmente no estás haciendo un pastel, solo las velas porque no puedo hacer un pastel de arte.
Para hacer el pastel primero debes obtener los primeros n
números de Fibonacci ordenados de forma ascendente. La i
altura de la vela ( ) se determina por el valor del número actual de Fibonacci. Las velas están separadas por un guión bajo ( _
).
El pastel debe ser simétrico. Entonces las velas deben voltearse y concatenarse.
Construcción de ejemplo
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 referencia de Fibonacci
Como referencia, aquí están los primeros 15 números de Fibonacci. En este desafío, comenzarás en 1
.
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610
Respuestas:
Pyth, 31 bytes
Pruébelo en línea: demostración
Explicación:
fuente
J, 58 bytes
Usos
(%-.-*:)t.
para la generación de Fibonacci. La explicación puede venir un poco más tarde.Uso:
Pruébelo en línea aquí.
fuente
CJam,
4139 bytesEsto imprime una buena cantidad de espacios en blanco principales. Pruébelo en línea en el intérprete de CJam .
Cómo funciona
fuente
TeaScript,
938476 + 1 = 77 bytes+1 byte para "¿Las entradas son números?" caja
Versión sin golf:
Gracias a @ Vɪʜᴀɴ por los consejos.
fuente
r
función en lugar deA(x)f(0)
, por ejemplor(x)m(#
Array.dupe()
, no parece funcionar?Python 2, 117 bytes
La idea es simple: generar la imagen en columnas que van de abajo hacia arriba, de izquierda a derecha, con la mitad derecha invertida de la izquierda. Las columnas se generan iterando la recurrencia de Fibonacci, en cadenas de
i
's, intercaladas con_
' s para la fila inferior.Para imprimir la imagen con columnas comenzando desde la parte inferior, necesitamos rotarla, lo que significa transponer e invertir. Desafortunadamente, Python no tiene una manera simple de transponer una matriz de filas de longitud desigual. El incorporado se
zip
trunca a la fila más corta. Esto usa elmap(None,_)
truco, pero luego tiene que convertir todos losNone
espacios.fuente
Haskell,
182176 bytesLlamada
c
.(
f
descaradamente robado de /programming/232861/fibonacci-code-golf )fuente
flip replicate 'i'.(f!!)
por\x->[1..f!!x]>>"i"
.f
funciona todavía ...Matlab,
172152bytesDesafortunadamente, Matlab no tiene una función de Fibonacci incorporada y la manipulación de cadenas es un poco complicada.
Con saltos de línea:
fuente
Ruby,
151146142137132 bytes137 bytes
142 bytes
146 bytes
151 bytes
Sin golf:
Uso:
Salida:
fuente
Pitón 2, 213
Guardado 12 bytes gracias a DSM.
Versión sin golf.
fuente