Deskripsi
Saya kira semua orang tahu dongeng Rapunzel dan sang pangeran. Bagi yang tidak: baca di sini. Namun, Rapunzel baru saja memotong rambutnya, jadi mungkin tidak cukup lama untuk membiarkan pangeran memanjat! Dia mungkin sangat sedih ..
Tantangan
Tugas Anda adalah menulis fungsi yang mengevaluasi apa yang akan dikatakan Rapunzel ketika sang pangeran memanggilnya untuk membiarkan rambutnya rontok: Ketika rambutnya lebih panjang atau sama dengan menara itu tinggi ditambah meter tambahan (pedoman keselamatan), ia menjadi veeeery senang dan berkata Aaaah!
, dengan jumlah a
yang sama dengan length of her hair - height of the tower
. Kalau tidak, rambutnya tidak memiliki panjang yang cukup, dan dia mulai menangis:, di Booho!
mana o
s sebelum h
dua pertiga dari height of the tower - length of her hair
, dan o
s setelah h adalah sisanya. Jumlah o
s setelah B
harus dibulatkan, jadi jika Anda dapatkan 2.6
, akan ada 3 o
s, dan yang lainnya harus setelah h
.
I / O
Anda diberi bilangan bulat positif (termasuk nol) sebagai argumen, sebagai daftar atau dua angka tunggal, dalam urutan yang Anda anggap paling nyaman, tetapi Anda harus menyatakan dalam urutan mana Anda mengambilnya. Sebagai hasilnya, cetak apa yang akan dikatakan Rapunzel.
Uji kasus
Dalam kasus uji, angka pertama adalah panjang rambut.
0, 0 -> 'Bh!' (probably a dry sob..)
2, 1 -> 'Aah!'
1, 2 -> 'Boh!'
1, 4 -> 'Booho!'
4, 1 -> 'Aaaah!'
2, 4 -> 'Boho!'
Ini kode-golf , jadi jawaban tersingkat dalam byte menang!
0
? BTW, bilangan bulat positif (termasuk nol) == bilangan bulat negatif-negatif :)0
juga. Tetap saja, dia harus keluar dari jendela, dan pembatasan keamanan juga berlaku di sini! Tidak mungkin dia bisa menikah dengannya jika lehernya patah.Jawaban:
Jelly ,
43 41 40 38 34 33 3231 byteMungkin ada banyak.Apakah ada cara yang lebih pendek!? ... ini golf!Program lengkap mencetak hasilnya *.
Cobalah online!
Bagaimana?
* Sebagai tautan monadik ia mengembalikan daftar karakter dan daftar karakter mis.
['B', [['o', 'o', 'h'], ['o']], '!']
, Sebagai program lengkap cetakan implisit menghancurkan eg iniBooho!
sumber
AL€œs3
dan menemukan div dengan nol kesalahan dan kemudian setelah saya mengatasinya dengan kode yang jauh lebih lama ditemukan saya masih perlu kasus khusus kasus panjang yang sama. Saya pikir saya akan mencoba dan menerapkan cara yang berbeda hari ini, tetapi sepertinya Anda sudah melakukannya.Python 3 , 87 byte
Cobalah online!
Argumen untuk fungsi yang diambil dalam urutan
length of hair
,height of tower
.sumber
05AB1E ,
383532 byteAgar masukan:
length of hair
,height of tower
Cobalah online!
Penjelasan
sumber
3
yang ditampilkan di TIO.Javascript,
10597 byteTerima kasih kepada Oki karena telah membantu menghemat 7 byte!
Menentukan fungsi kari anonim. Gunakan like
f(length)(height)
Cobalah online!
sumber
f(1)(4)
. Menggantip(o+d)
denganp(-o-d)
bisa memperbaiki ini. Anda juga dapat menggunakano=-d*2/3+.5|0
untuk menyimpan 7 byte.p=(t,s='o')=>s.repeat(t)
PHP> = 7.1, 111 byte
PHP Sandbox Online
sumber
Jelly , 32 byte
Cobalah online!
-1 terima kasih kepada Jonathan Allan .
Hanya berfungsi sebagai program lengkap.
Argumennya berurutan: rambut, menara
sumber
ær0
dengan+.
Julia, 101 byte
Argumen untuk fungsi yang diambil dalam urutan
length of Hair
,height of Tower
.sumber
Jelly ,
8476 byteIni agak lama, tapi saya menghabiskan terlalu banyak waktu untuk tidak mempostingnya. Membawa dua argumen integer:
Setiap tips tentang golf ini akan sangat dihargai.
Cobalah online!
sumber
R, 117 byte
Agak panjang, cukup yakin ini bisa diturunkan. Mengambil input dari STDIN dalam urutan
Tower, Hair
.sumber
1 4
Python 2 , 77 byte
Fungsi yang tidak disebutkan namanya mengambil panjang rambut
h
,, dan tinggi menarat
,, dan mengembalikan string.Cobalah online!
Membangun string dimulai dengan
BA
, diikuti oleh dua pertiga dari perbedaan putaran dari string yangoa
diulang, diikuti oleh satuh
, kemudian jumlah sisanyaao
diulang, dan akhirnyah!!
. Nilai kembali kemudian setiap karakter kedua dimulai dengan salah satuB
atauA
melalui notasi slice[h>t::2]
.sumber
Perl, 107 byte
Mengambil panjang rambut pertama, panjang menara kedua.
sumber