Terinspirasi oleh Pajang rantai pegunungan kecil dengan angka ganjil di atasnya! oleh @sygmei .
Mengapa memiliki rantai pegunungan ketika Anda dapat memiliki satu gunung besar?
Buat program yang mengambil nomor input dan mencetak gunung dengan setiap nomor ganjil hingga nomor input.
(Di mana "barat daya" berarti directly below and to the left
, dan "tenggara" berarti directly below and to the right
)
Setiap angka akan memiliki /
barat selatan dari itu, dan \
tenggara. Itu dimulai dari 1
di atas, dan angka berikutnya akan pergi ke barat daya /
atau tenggara dari a \
. Nomor berikutnya akan berada di garis paling dekat ke atas dan ke kiri paling mungkin.
Untuk nomor multidigit, hanya digit pertama yang harus berada di tempat yang tepat dengan digit lainnya secara langsung setelahnya, dan hanya digit pertama yang harus \
dan /
keluar darinya.
Gunung hingga 1 atau 2 hanya:
1
/ \
Gunung hingga 3 atau 4 hanya:
1
/ \
3
/ \
Untuk 25 atau 26:
1
/ \
3 5
/ \ / \
7 9 11
/ \ / \ / \
13 15 17 19
/ \ / \ / \ / \
21 23 25
/ \ / \ / \
Dua baris terakhir dengan input 121:
111 113 115 117 119 121
/ \ / \ / \ / \ / \ / \
Dan dua baris terakhir di mana inputnya adalah 1019:
993 995 997 999 1001100310051007100910111013101510171019
/ \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \
Anda dapat berasumsi bahwa input akan lebih besar dari 0 dan kurang dari 10001 (eksklusif).
Trailing space baik-baik saja, dan ruang pemimpin tambahan baik-baik saja selama ada yang sama di semua lini.
Ini adalah kode-golf , jadi program terpendek dalam byte menang.
Sebuah jawaban yang tidak dikenali untuk ini dapat ditemukan online di sini (Dalam Python pada repl.it) jika Anda memerlukan lebih banyak kasus uji.
Jawaban:
05AB1E ,
54524746 byteCobalah online!
Penjelasan
Saya dapat menyimpan 5 byte
ÅɹL£D€g__ÏRv"/ \ "yg×N·©úˆy4jJðÛ®>úˆ}¯R»
jika saja saya mendorong perbaikan bug untuk j yang saya tulis beberapa minggu yang lalu : /sumber
Batch, 335 byte
sumber
cmd /Q /C file.bat
menghitung 3 byte tambahan, tapi masih lebih baik daripada@echo off
. Anda harus memposting itu ke pertanyaan kiat Batch.Python 2,
160149143 byteTerima kasih TFeld untuk menghemat 11 byte dan Artyer karena telah menghemat 6 byte
sumber
i=len(y)
danfor l in y:print' '*i+l;i-=1
bukannyafor i,l in enumerate(y):print(len(y)-i-1)*' '+l
untuk -10 byte\\
ke\
karena merupakan sebelum spasiwhile y:print' '*-~len(y)+y.pop(0)
. Menghemat 3 byte.%-4d
untuk membenarkannya padaPerl, 134
133 byte +1 untuk
-p
opsiVersi yang diformat (versi golf asli menggunakan "baris baru" yang sebenarnya, bukan \ n)
sumber
Bash, 425 byte
Diformat:
sumber