Beschreibung
Ich denke, jeder kennt das Märchen von Rapunzel und dem Prinzen. Für diejenigen, die dies nicht tun: lesen Sie es hier. Rapunzel hatte sich jedoch gerade die Haare schneiden lassen, sodass es möglicherweise nicht lang genug war, um ihren Prinzen aufsteigen zu lassen! Sie kann sehr traurig werden ..
Herausforderung
Deine Aufgabe ist es, eine Funktion zu schreiben, die auswertet, was Rapunzel sagt, wenn der Prinz sie auffordert, ihre Haare fallen zu lassen: Wenn ihre Haare länger oder gleich dem Turm sind, wird sie plus einem zusätzlichen Meter (Sicherheitsrichtlinien) Sehr fröhlich und sagt Aaaah!
, mit a
der gleichen Anzahl von s wie length of her hair - height of the tower
. Andernfalls ist ihr Haar nicht lang genug und sie fängt an zu weinen: Booho!
wobei das o
s vor h
zwei Dritteln height of the tower - length of her hair
und das o
s nach dem h der Rest ist. Die Anzahl der o
Sekunden nach dem B
muss gerundet werden. Wenn Sie also erhalten 2.6
, gibt es 3 o
Sekunden, und die anderen müssen nach dem sein h
.
I / O
Sie erhalten positive Ganzzahlen (einschließlich Null) als Argumente, als Liste oder als zwei einzelne Zahlen, und zwar in der Reihenfolge, in der Sie dies für am bequemsten halten. Sie müssen jedoch angeben, in welcher Reihenfolge Sie sie verwenden. Drucken Sie als Ausgabe aus, was Rapunzel sagen wird.
Testfälle
In den Testfällen ist die erste Zahl die Haarlänge.
0, 0 -> 'Bh!' (probably a dry sob..)
2, 1 -> 'Aah!'
1, 2 -> 'Boh!'
1, 4 -> 'Booho!'
4, 1 -> 'Aaaah!'
2, 4 -> 'Boho!'
Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes!
0
? Übrigens, positive ganze Zahlen (einschließlich null) == _non-negative ganze Zahlen :)0
auch. Trotzdem muss sie aus dem Fenster steigen und auch hier gelten die Sicherheitsbestimmungen! Sie kann ihn auf keinen Fall heiraten, wenn sie sich den Hals gebrochen hat.Antworten:
Jelly ,
43 41 40 38 34 33 3231 BytesEs ist wahrscheinlich eine vielGibt es einen kürzeren Weg , obwohl!? ... das war ziemlich viel Golf!Ein vollständiges Programm zum Ausdrucken des Ergebnisses *.
Probieren Sie es online!
Wie?
* Als monadischen Link eine Liste von Zeichen und Zeichenlisten zB gibt
['B', [['o', 'o', 'h'], ['o']], '!']
, als ein volles Programm der implizite Druck zerschlägt diese zBBooho!
quelle
AL€œs3
, div by zero-Fehler zu verwenden und zu finden, und nachdem ich mich damit befasst hatte, dass ich mit dem viel längeren Code, den ich oben gefunden habe, immer noch den Sonderfall mit der gleichen Länge brauchte. Ich dachte, ich würde versuchen, einen anderen Weg heute zu implementieren, aber sieht so aus, als ob Sie es bereits getan haben.Python 3 , 87 Bytes
Probieren Sie es online!
Argumente für die Funktion in der Reihenfolge genommen
length of hair
,height of tower
.quelle
05AB1E ,
383532 BytesEingabereihenfolge:
length of hair
,height of tower
Probieren Sie es online!
Erläuterung
quelle
3
, der auf TIO angezeigt wird.Javascript,
10597 BytesDanke an Oki für die Hilfe beim Speichern von 7 Bytes!
Definiert eine anonyme Curry-Funktion. Verwenden Sie wie
f(length)(height)
Probieren Sie es online!
quelle
f(1)(4)
. Das Ersetzenp(o+d)
durchp(-o-d)
könnte dieses Problem beheben. Sie können aucho=-d*2/3+.5|0
7 Bytes speichern.p=(t,s='o')=>s.repeat(t)
PHP> = 7.1, 111 Bytes
PHP Sandbox Online
quelle
Jelly , 32 Bytes
Probieren Sie es online!
-1 Danke an Jonathan Allan .
Funktioniert nur als Vollprogramm.
Argumente sind angebracht: Haare, Turm
quelle
ær0
mit+.
Julia, 101 Bytes
Argumente für die Funktion in der Reihenfolge genommen
length of Hair
,height of Tower
.quelle
Jelly ,
8476 BytesEs ist wirklich ziemlich lang, aber ich habe zu viel Zeit damit verbracht, es nicht zu posten. Nimmt zwei ganzzahlige Argumente an:
Alle Tipps zum Golfen dies wäre dankbar.
Probieren Sie es online!
quelle
R, 117 Bytes
Ein bisschen lang, ziemlich sicher, dass man Golf spielen kann. Übernimmt die Eingabe von STDIN in der Reihenfolge
Tower, Hair
.quelle
1 4
Python 2 , 77 Bytes
Eine unbenannte Funktion, die Haarlänge,
h
Turmhöhet
und eine Zeichenfolge zurückgibt.Probieren Sie es online!
Erstellt eine Zeichenfolge, die mit beginnt
BA
, gefolgt von zwei Dritteln der Differenz, gerundet von deroa
wiederholten Zeichenfolge , gefolgt von einer einzelnenh
, dann der verbleibenden Anzahl vonao
wiederholten und schließlichh!!
. Der Rückgabewert ist dann jedes zweite Zeichen, beginnend entweder mit derB
oderA
über die Slice-Notation[h>t::2]
.quelle
Perl, 107 Bytes
Nimmt zuerst die Haarlänge, dann die Turmlänge.
quelle