Descripción
Supongo que todos conocen el cuento de hadas de Rapunzel y el príncipe. Para aquellos que no lo hacen: léalo aquí. Sin embargo, Rapunzel acababa de cortarse el pelo, ¡así que podría no ser lo suficientemente largo como para dejar que su príncipe se trepara! Ella puede ponerse muy triste ...
Desafío
Su tarea es escribir una función que evalúe lo que Rapunzel dirá cuando el príncipe le pida que se suelte el cabello: cuando su cabello es más largo o igual que la torre es alta más un metro adicional (pautas de seguridad), se convierte muuuy feliz y dice Aaaah!
, con el número de a
s igual length of her hair - height of the tower
. De lo contrario, su cabello no tiene la longitud suficiente y comienza a llorar Booho!
, donde el o
s antes de los h
dos tercios iguales height of the tower - length of her hair
y el o
s después de la h son el resto. El número de o
s después del B
debe redondearse, por lo que si obtiene 2.6
, habrá 3 o
s, y los demás deben estar después del h
.
I / O
Se le proporcionan enteros positivos (incluido nulo) como argumentos, como una lista o como dos números individuales, en el orden que le resulte más conveniente, pero debe indicar en qué orden los toma. Como salida, imprime lo que Rapunzel dirá.
Casos de prueba
En los casos de prueba, el primer número será la longitud del cabello.
0, 0 -> 'Bh!' (probably a dry sob..)
2, 1 -> 'Aah!'
1, 2 -> 'Boh!'
1, 4 -> 'Booho!'
4, 1 -> 'Aaaah!'
2, 4 -> 'Boho!'
Este es el código de golf , por lo que gana la respuesta más corta en bytes.
0
? Por cierto, enteros positivos (incluido nulo) == _ enteros no negativos :)0
también lo sea. Aún así, ella tiene que salir por la ventana, ¡y las restricciones de seguridad también se aplican aquí! No hay manera de que ella pueda casarse con él si ella tiene un cuello roto.Respuestas:
Gelatina ,
43 41 40 38 34 33 3231 bytesProbablementehaymucho.¿Hay un camino más corto?? ... esto fue bastante golf!Un programa completo que imprime el resultado *.
Pruébalo en línea!
¿Cómo?
* Como enlace monádico, devuelve una lista de caracteres y listas de caracteres
['B', [['o', 'o', 'h'], ['o']], '!']
, por ejemplo , como un programa completo, la impresión implícita destruye esto, por ejemploBooho!
fuente
AL€œs3
y encontré div por cero errores y luego, después de abordar eso con el código mucho más largo que encontré, todavía necesitaba un caso especial en el caso de igual longitud. Pensé que trataría de implementar una forma diferente hoy, pero parece que ya lo hiciste.Python 3 , 87 bytes
Pruébalo en línea!
Argumentos de la función se toman en el orden
length of hair
,height of tower
.fuente
05AB1E ,
383532 bytesOrden de entrada:
length of hair
,height of tower
Pruébalo en línea!
Explicación
fuente
3
que se muestra en TIO.Javascript,
10597 bytes¡Gracias a Oki por ayudar a ahorrar 7 bytes!
Define una función de currículum anónimo. Usar como
f(length)(height)
Pruébalo en línea!
fuente
f(1)(4)
. Reemplazarp(o+d)
conp(-o-d)
podría solucionar esto. También puede usaro=-d*2/3+.5|0
para guardar 7 bytes.p=(t,s='o')=>s.repeat(t)
PHP> = 7.1, 111 bytes
PHP Sandbox en línea
fuente
Jalea , 32 bytes
Pruébalo en línea!
-1 gracias a Jonathan Allan .
Solo funciona como programa completo.
Los argumentos están en orden: cabello, torre
fuente
ær0
con+.
Julia, 101 bytes
Argumentos de la función se toman en el orden
length of Hair
,height of Tower
.fuente
Jalea ,
8476 bytesEs realmente bastante largo, pero pasé demasiado tiempo en esto para no publicarlo. Toma dos argumentos enteros:
Cualquier consejo sobre golf esto sería apreciado.
Pruébalo en línea!
fuente
R, 117 bytes
Un poco largo, bastante seguro de que se puede jugar golf. Toma información de STDIN en el orden
Tower, Hair
.fuente
1 4
Python 2 , 77 bytes
Una función sin nombre que toma la longitud del cabello
h
, y la altura de la torret
, y devuelve una cadena.Pruébalo en línea!
Construye una secuencia comenzando con
BA
, seguida de dos tercios de la diferencia redondeada de la secuenciaoa
repetida, seguida de una solah
, luego la cantidad restante deao
repetida y finalmenteh!!
. El valor de retorno es entonces cada segundo carácter que comienza conB
oA
mediante la notación de corte[h>t::2]
.fuente
Perl, 107 bytes
Toma la longitud del cabello primero, la longitud de la torre segundo
fuente