Latar Belakang
Hari ini (atau Kemarin) adalah (atau dulu) 11/23 atau hari Fibonacci! Apa cara yang lebih baik untuk merayakan selain membuat kue fibonacci?
Contohnya
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
Tantangan
Anda tidak benar-benar membuat kue, hanya lilin karena saya tidak bisa ascii-art kue
Untuk membuat kue Anda harus terlebih dahulu mendapatkan n
nomor fibonacci pertama yang diurutkan naik. Tinggi candle ( i
) ditentukan oleh nilai dari nomor fibonacci saat ini. Lilin dipisahkan oleh garis bawah ( _
).
Kue harus simetris. Jadi lilin kemudian harus dibalik dan disatukan.
Contoh Konstruksi
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
Referensi Angka Fibonacci
Untuk referensi, berikut adalah 15 angka fibonacci pertama. Dalam tantangan ini, Anda akan mulai 1
.
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610
Jawaban:
Pyth, 31 byte
Cobalah online: Demonstrasi
Penjelasan:
sumber
J, 58 byte
Penggunaan
(%-.-*:)t.
untuk generasi Fibonacci. Penjelasan mungkin datang sedikit kemudian.Pemakaian:
Cobalah online di sini.
sumber
CJam,
4139 byteIni mencetak cukup banyak ruang putih terkemuka. Cobalah online di juru bahasa CJam .
Bagaimana itu bekerja
sumber
TeaScript,
938476 + 1 = 77 byte+1 byte untuk "Input adalah angka?" kotak centang
Versi tidak disatukan:
Terima kasih kepada @ Vɪʜᴀɴ untuk tipsnya.
sumber
r
fungsi alih-alihA(x)f(0)
, misalnyar(x)m(#
Array.dupe()
dilakukan, sepertinya tidak berhasil?Python 2, 117 byte
Idenya sederhana: menghasilkan gambar dalam kolom ke bawah ke atas, kiri ke kanan, dengan setengah kanan cermin terbalik dari kiri. Kolom-kolom dihasilkan dengan mengulangi pengulangan Fibonacci, pada string
i
's, diselingi dengan_
' s untuk baris bawah.Untuk mencetak gambar dengan kolom mulai dari bawah, kita perlu memutarnya, yang berarti transposing dan pembalikan. Sayangnya, Python tidak memiliki cara sederhana untuk mengubah urutan deretan panjang yang tidak sama. Built-in
zip
terpotong ke baris terpendek. Ini menggunakanmap(None,_)
trik, tetapi harus mengubah semuaNone
menjadi spasi sesudahnya.sumber
Haskell,
182176 bytePanggil
c
.(
f
Tanpa malu-malu dicuri dari /programming/232861/fibonacci-code-golf )sumber
flip replicate 'i'.(f!!)
dengan\x->[1..f!!x]>>"i"
.f
kerjanya ...Matlab,
172152 byteSayangnya, Matlab tidak memiliki fungsi Fibonacci dan Manipulasi string sedikit rumit.
Dengan jeda baris:
sumber
Ruby,
151146142137132 byte137 byte
142 byte
146 byte
151 byte
Tidak Terkumpul:
Pemakaian:
Keluaran:
sumber
Python 2, 213
Disimpan 12 byte berkat DSM.
Versi tidak disatukan.
sumber