Hintergrund
Heute (oder gestern) ist (oder war) der 23.11. Oder der Fibonacci-Tag! Was gibt es Schöneres, als einen Fibonacci-Kuchen zuzubereiten?
Beispiele
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
Herausforderung
Du machst nicht wirklich einen Kuchen, nur die Kerzen, weil ich keinen Kuchen zubereiten kann
Um den Kuchen zuzubereiten, müssen Sie zuerst die ersten n
Fibonacci-Zahlen aufsteigend sortieren. Die Höhe der Kerze ( i
) wird durch den Wert der aktuellen Fibonacci-Zahl bestimmt. Die Kerzen sind durch einen Unterstrich ( _
) getrennt.
Der Kuchen sollte symmetrisch sein. So sollten die Kerzen dann gekippt und verkettet werden.
Beispielkonstruktion
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
Referenz Fibonacci-Nummern
Als Referenz sind hier die ersten 15 Fibonacci-Zahlen. In dieser Herausforderung fängst du an 1
.
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610
Antworten:
Pyth, 31 Bytes
Probieren Sie es online aus: Demonstration
Erläuterung:
quelle
J, 58 Bytes
Verwendet
(%-.-*:)t.
für die Fibonacci-Generation. Erklärung kann etwas später kommen.Verwendung:
Probieren Sie es hier online aus.
quelle
CJam,
4139 BytesDies druckt eine ganze Menge führender Leerzeichen. Probieren Sie es online im CJam-Interpreter aus .
Wie es funktioniert
quelle
TeaScript,
938476 + 1 = 77 Bytes+1 Byte für "Eingaben sind Zahlen?" Kontrollkästchen
Ungolfed-Version:
Danke an @ Vɪʜᴀɴ für die Tipps.
quelle
r
Funktion anstelle vonA(x)f(0)
z. B.r(x)m(#
Array.dupe()
es, es scheint nicht zu funktionieren?Python 2, 117 Bytes
Die Idee ist einfach: Erzeugen Sie das Bild in Spalten von unten nach oben, von links nach rechts, wobei die gespiegelte rechte Hälfte die Rückseite der linken ist. Die Spalten werden durch Iteration der Fibonacci-Wiederholung auf Zeichenfolgen von erzeugt
i
, die mit durchsetzt sind_
' s für die unterste Zeile durchsetzt sind.Um das Bild mit Spalten zu drucken, die von unten beginnen, müssen wir es drehen, dh transponieren und umkehren. Leider gibt es in Python keine einfache Möglichkeit, ein Array von Zeilen ungleicher Länge zu transponieren. Die eingebaute
zip
schneidet auf die kürzeste Zeile ab. Dies nutzt denmap(None,_)
Trick, muss aberNone
danach alle in Leerzeichen konvertieren .quelle
Haskell,
182176 BytesRufen Sie an
c
.(
f
Schamlos gestohlen von /programming/232861/fibonacci-code-golf )quelle
flip replicate 'i'.(f!!)
durch\x->[1..f!!x]>>"i"
.f
funktioniert ...Matlab,
172152 BytesLeider hat Matlab keine eingebaute Fibonacci-Funktion und die String-Manipulation ist etwas umständlich.
Mit Zeilenumbrüchen:
quelle
Ruby,
151146142137132 Bytes137 Bytes
142 Bytes
146 Bytes
151 Bytes
Ungolfed:
Verwendung:
Ausgabe:
quelle
Python 2, 213
Dank DSM 12 Byte eingespart.
Ungolfed-Version.
quelle