Tantangan
Kita semua tahu tentang pohon Natal yang normal - tetapi bagaimana dengan pohon Natal yang terbalik ! Ini adalah tantangan bertema Natal yang cukup mudah. Tujuan dari tantangan ini adalah menjadikan saya pohon Natal terbalik ASCII. Berikut adalah aturan untuk tantangan ini:
- Terima bilangan bulat ganjil dan positif. Anda dapat menganggap itu akan selalu antara
7
dan51
. Pangkal pohon akan dibuat dari karakter:
___ \ / |
Bagian atas pohon (bintang), akan terdiri dari satu
*
.Setiap baris pohon akan dibangun menggunakan format di
<?>
mana?
sejumlah-
s. Misalnya, jika membuat garis panjang5
, garis itu seharusnya<--->
. Atau jika membuat garis panjang8
, garis itu seharusnya<------>
.Inilah bagaimana tubuh pohon seharusnya dibangun:
Ambil angka ganjil yang
n
diberikan sebagai input, dan buat garis pohon sepanjang itu.Kurangi
4
darin
dan membuat garis pohon yang panjang.Kurangi
2
darin
dan membuat garis pohon yang panjang.Pengurangan
n
oleh2
. Setelah itu, kecualin
sama dengan5
, kembali ke langkah 2.
Basis (lihat langkah 2.) bintang (lihat langkah 3.) dan setiap baris pohon (lihat langkah 4. dan 5.) semuanya harus dipusatkan menggunakan input nomor ganjil asli (lihat langkah 1.) sebagai maksimum lebar.
Contoh / Kasus Uji
odd number inputed: 7
___
\ /
|
<-----> line length -> 7
<-> line length -> 7 - 4 = 3
<---> line length -> 7 - 2 = 5
*
odd number inputed: 13
___
\ /
|
<-----------> line length -> 13
<-------> line length -> 13 - 4 = 9
<---------> line length -> 13 - 2 = 11
<-----> line length -> 11 - 4 = 7
<-------> line length -> 11 - 2 = 9
<---> line length -> 9 - 4 = 5
<-----> line length -> 9 - 2 = 7
<-> line length -> 7 - 4 = 3
<---> line length -> 7 - 2 = 5
*
odd number inputed: 9
___
\ /
|
<-------> line length -> 9
<---> line length -> 9 - 4 = 5
<-----> line length -> 9 - 2 = 7
<-> line length -> 7 - 4 = 3
<---> line length -> 7 - 2 = 5
*
odd number inputed: 17
___
\ /
|
<---------------> line length -> 17
<-----------> line length -> 17 - 4 = 13
<-------------> line length -> 17 - 2 = 15
<---------> line length -> 15 - 4 = 11
<-----------> line length -> 15 - 2 = 13
<-------> line length -> 13 - 4 = 9
<---------> line length -> 13 - 2 = 11
<-----> line length -> 11 - 4 = 7
<-------> line length -> 11 - 2 = 9
<---> line length -> 9 - 4 = 5
<-----> line length -> 9 - 2 = 7
<-> line length -> 7 - 4 = 3
<---> line length -> 7 - 2 = 5
*
Aturan
- Celah standar berlaku .
- Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang!
repeat the above steps until the odd number minus 2 equals 5
- pada input pertama, angka ganjil adalah 7, dan 7-2 = 5, oleh karena itu pohon harus berakhir secara instan (saya tahu apa yang Anda maksud, tetapi perlu
7
, input minimum, pertama - tama Anda harus membuat tiga garis pohon (sub-langkah .1.1, .1.2, .1.3), kemudian kurangi 2
dari angka ganjil dan uji jika jumlahnya sama 5
. Instruksi untuk memeriksa apakah "angka ganjil minus 2 sama dengan 5" adalah pada akhirnya, tiga langkah lainnya harus dilakukan terlebih dahulu. Tetapi untuk menjawab komentar pertama Anda, itu akan baik-baik saja.
7
sebagai input atau jika Anda dapat menerima 4
, seperti pada nomor ganjil keempat (atau 3
jika itu 0-diindeks).