Descrição
Acho que todo mundo conhece o conto de fadas de Rapunzel e o príncipe. Para quem não: leia aqui. No entanto, Rapunzel tinha acabado de cortar o cabelo, por isso pode não demorar o suficiente para deixar seu príncipe subir! Ela pode ficar muito triste ..
Desafio
Sua tarefa é escrever uma função que avalie o que Rapunzel dirá quando o príncipe pedir para ela soltar o cabelo: quando o cabelo é maior ou igual à torre, é alto mais um medidor extra (diretrizes de segurança), ela se torna muito feliz e diz Aaaah!
, com o número de a
s sendo o mesmo que length of her hair - height of the tower
. Caso contrário, seu cabelo não tem comprimento suficiente e ela começa a chorar:, Booho!
onde o
s antes dos h
dois terços iguais height of the tower - length of her hair
e o
es depois h são os demais. O número de o
s após o B
deve ser arredondado; portanto, se você obtiver 2.6
, haverá 3 o
s e os outros deverão ser após o h
.
I / O
Você recebe números inteiros positivos (incluindo nulo) como argumentos, como uma lista ou como dois números únicos, na ordem que achar mais conveniente, mas deve declarar em que ordem os aceita. Como saída, imprima o que o Rapunzel estará dizendo.
Casos de teste
Nos casos de teste, o primeiro número será o comprimento do cabelo.
0, 0 -> 'Bh!' (probably a dry sob..)
2, 1 -> 'Aah!'
1, 2 -> 'Boh!'
1, 4 -> 'Booho!'
4, 1 -> 'Aaaah!'
2, 4 -> 'Boho!'
Isso é código-golfe , então a resposta mais curta em bytes vence!
0
? Aliás, inteiros positivos (incluindo nulo) inteiros == _non-negativas :)0
também é . Ainda assim, ela tem que sair pela janela, e as restrições de segurança também se aplicam aqui! Não há como ela se casar com ele se tiver um pescoço quebrado.Respostas:
Geléia ,
43 41 40 38 34 33 3231 bytesProvavelmente há muito.Existe uma maneira mais curta!? ... isso foi bastante golfe!Um programa completo imprimindo o resultado *.
Experimente online!
Quão?
* Como um link monádico, ele retorna uma lista de caracteres e listas de caracteres
['B', [['o', 'o', 'h'], ['o']], '!']
, por exemplo , como um programa completo, a impressão implícita esmaga isso, por exemplo.Booho!
fonte
AL€œs3
e encontrei div por zero erros e, depois de abordar isso com o código muito mais longo encontrado, ainda precisava de um caso especial com o mesmo comprimento. Pensei em tentar implementar uma maneira diferente hoje, mas parece que você já o fez.Python 3 , 87 bytes
Experimente online!
Argumentos para a função são tomadas na ordem
length of hair
,height of tower
.fonte
05AB1E ,
383532 bytesOrdem de entrada:
length of hair
,height of tower
Experimente online!
Explicação
fonte
3
que é mostrado no TIO.Javascript,
10597 bytesAgradecemos à Oki por ajudar a economizar 7 bytes!
Define uma função de curry anônima. Use como
f(length)(height)
Experimente online!
fonte
f(1)(4)
. Substituirp(o+d)
porp(-o-d)
poderia corrigir isso. Além disso, você pode usaro=-d*2/3+.5|0
para salvar 7 bytes.p=(t,s='o')=>s.repeat(t)
PHP> = 7.1, 111 bytes
Sandbox do PHP Online
fonte
Geléia , 32 bytes
Experimente online!
-1 graças a Jonathan Allan .
Funciona apenas como programa completo.
Os argumentos estão em ordem: cabelo, torre
fonte
ær0
por+.
Julia, 101 bytes
Argumentos para a função são tomadas na ordem
length of Hair
,height of Tower
.fonte
Geléia ,
8476 bytesÉ realmente bastante longo, mas gastei muito tempo nisso para não publicá-lo. Leva dois argumentos inteiros:
Qualquer dica sobre golfe isso seria apreciada.
Experimente online!
fonte
R, 117 bytes
Um pouco longo, com certeza isso pode ser jogado para baixo. Recebe entrada de STDIN no pedido
Tower, Hair
.fonte
1 4
Python 2 , 77 bytes
Uma função sem nome que obtém o comprimento do cabelo
h
, e a altura da torret
e retorna uma sequência.Experimente online!
Constrói uma sequência iniciada com
BA
, seguida por dois terços da diferença arredondada da sequênciaoa
repetida, seguida por uma únicah
, depois a quantidade restante deao
repetida e finalmenteh!!
. O valor de retorno é então cada segundo caractere começando com a notaçãoB
ouA
através da fatia[h>t::2]
.fonte
Perl, 107 bytes
Pega primeiro o comprimento do cabelo, depois o comprimento da torre.
fonte