Opis
Chyba wszyscy znają bajkę o Roszpunkach i księciu. Dla tych, którzy nie: przeczytaj tutaj. Jednak Roszpunka właśnie obciąła włosy, więc może nie potrwać wystarczająco długo, by pozwolić jej księciu wspiąć się na górę! Może być bardzo smutna ..
Wyzwanie
Twoim zadaniem jest napisanie funkcji, która ocenia to, co powie Roszponka, gdy książę wzywa ją, by upuściła włosy: gdy jej włosy są dłuższe lub równe wieży są wysokie i dodatkowy metr (wytyczne bezpieczeństwa), staje się bardzo szczęśliwy i mówi Aaaah!
, przy czym liczba a
s jest taka sama jak length of her hair - height of the tower
. W przeciwnym razie jej włosy nie mają wystarczającej długości i zaczyna płakać: Booho!
gdzie o
s przed h
równymi dwiema trzecimi height of the tower - length of her hair
, a o
s po h oznacza resztę. Liczba o
s po B
musi być zaokrąglona, więc jeśli dostaniesz 2.6
, będą 3 o
s, a pozostałe muszą być za h
.
I / O
Otrzymujesz dodatnie liczby całkowite (w tym null) jako argumenty, listę lub dwie pojedyncze liczby, w kolejności, w której uznasz to za najwygodniejsze, ale musisz określić, w jakiej kolejności je przyjmujesz. Jako wynik wydrukuj, co powie Rapunzel.
Przypadki testowe
W przypadkach testowych pierwszą liczbą będzie długość włosów.
0, 0 -> 'Bh!' (probably a dry sob..)
2, 1 -> 'Aah!'
1, 2 -> 'Boh!'
1, 4 -> 'Booho!'
4, 1 -> 'Aaaah!'
2, 4 -> 'Boho!'
To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach!
0
? BTW, dodatnie liczby całkowite (w tym null) == nieujemne liczby całkowite :)0
też są długie . Mimo to musi wyjść z okna, obowiązują tu również ograniczenia bezpieczeństwa! Nie ma mowy, żeby mogła go poślubić, jeśli ma złamaną szyję.Odpowiedzi:
Galaretka ,
43 41 40 38 34 33 3231 bajtówPrawdopodobnie jest wieleCzy istnieje krótsza droga!? ... to było trochę golfa!Pełny program drukujący wynik *.
Wypróbuj online!
W jaki sposób?
* Jako monadyczny link zwraca listę znaków i listy znaków, np.
['B', [['o', 'o', 'h'], ['o']], '!']
Jako pełny program druk niejawny rozbija to np.Booho!
źródło
AL€œs3
i znajdowania div przez zero błędów, a potem, gdy rozwiązałem ten problem przy znacznie dłuższym kodzie powyżej, wciąż potrzebowałem specjalnego przypadku o równej długości. Myślałem, że spróbuję dziś wprowadzić inny sposób, ale wygląda na to, że już to zrobiłeś.Python 3 , 87 bajtów
Wypróbuj online!
Argumenty funkcji są w porządku
length of hair
,height of tower
.źródło
05AB1E ,
383532 bajtówKolejność wprowadzania:
length of hair
,height of tower
Wypróbuj online!
Wyjaśnienie
źródło
3
co pokazano w TIO.JavaScript,
10597 bajtówDzięki Oki za pomoc w oszczędzaniu 7 bajtów!
Definiuje anonimową funkcję curry. Użyj jak
f(length)(height)
Wypróbuj online!
źródło
f(1)(4)
. Zastąpieniep(o+d)
przezp(-o-d)
może to naprawić. Możesz także użyćo=-d*2/3+.5|0
do zapisania 7 bajtów.p=(t,s='o')=>s.repeat(t)
PHP> = 7.1, 111 bajtów
PHP Sandbox Online
źródło
Galaretka , 32 bajty
Wypróbuj online!
-1 dzięki Jonathan Allan .
Działa tylko jako pełny program.
Argumenty są w kolejności: włosy, wieża
źródło
ær0
z+.
Julia, 101 bajtów
Argumenty funkcji są w porządku
length of Hair
,height of Tower
.źródło
Galaretka ,
8476 bajtówTo naprawdę dość długie, ale poświęciłem temu zbyt wiele czasu, aby tego nie opublikować. Przyjmuje dwa argumenty całkowite:
Wszelkie wskazówki dotyczące gry w golfa będą mile widziane.
Wypróbuj online!
źródło
R, 117 bajtów
Trochę długi, całkiem pewny, że można go zagrać w golfa. Pobiera dane wejściowe ze STDIN w kolejności
Tower, Hair
.źródło
1 4
Python 2 , 77 bajtów
Nienazwana funkcja pobierająca długość włosów
h
i wysokość wieżyt
oraz zwracająca ciąg.Wypróbuj online!
Tworzy ciąg rozpoczynający się od
BA
, następnie dwie trzecie różnicy zaokrąglonego ciąguoa
powtórzone, następnie jedenh
, następnie pozostała ilośćao
powtórzeń i na koniech!!
. Zwracana wartość to wtedy co drugi znak rozpoczynający się albo odB
lubA
poprzez notację wycinka[h>t::2]
.źródło
Perl, 107 bajtów
Najpierw bierze długość włosów, a drugą wieżę.
źródło