Je n'ai pas vérifié le bac à sable avant de publier ce défi - il semble que ce défi ait été proposé par Cᴏɴᴏʀ O'Bʀɪᴇɴ .
Étant donné une entrée entière, écrivez un programme qui imprime l'énigme "quatre est un nombre magique"
- Quatre est le nombre magique
- Cinq est quatre et quatre est le nombre magique
- Six est trois et trois est cinq et cinq est quatre et quatre est le nombre magique
- Onze est six et six est trois et trois est cinq et cinq est quatre et quatre est le nombre magique
- Cinq cent est onze et onze est six et six est trois et trois est cinq et cinq est quatre et quatre est le nombre magique
Si vous connaissez déjà l'énigme, ou si vous êtes trop paresseux pour la résoudre, impatient de savoir ce qu'est l'énigme, voici une explication
Le chiffre suivant est le nombre de lettres du chiffre précédent. Ainsi, par exemple, cinq a quatre lettres, donc le chiffre suivant est quatre .
six a trois lettres, donc le chiffre suivant est 3 , et trois a cinq lettres, donc le chiffre suivant est 5 , et cinq a quatre lettres, donc le chiffre suivant est 4
La raison pour laquelle l'énigme se termine à quatre est parce que quatre a quatre lettres et quatre est quatre et quatre est quatre et quatre est quatre ... (quatre est le nombre magique)
Cas de test
0 =>
Zero is four and four is the magic number
1 =>
One is three and three is five and five is four and four is the magic number
2 =>
Two is three and three is five and five is four and four is the magic number
3 =>
Three is five and five is four and four is the magic number
4 =>
Four is the magic number
5 =>
Five is four and four is the magic number
6 =>
Six is three and three is five and five is four and four is the magic number
7 =>
Seven is five and five is four and four is the magic number
8 =>
Eight is five and five is four and four is the magic number
9 =>
Nine is four and four is the magic number
10 =>
Ten is three and three is five and five is four and four is the magic number
17 =>
Seventeen is nine and nine is four and four is the magic number
100 =>
One Hundred is ten and ten is three and three is five and five is four and four is the magic number
142 =>
One Hundred Forty Two is eighteen and eighteen is eight and eight is five and five is four and four is the magic number
1,000 =>
One Thousand is eleven and eleven is six and six is three and three is five and five is four and four is the magic number
1,642 =>
One Thousand Six Hundred Forty Two is twenty nine and twenty nine is ten and ten is three and three is five and five is four and four is the magic number
70,000 =>
Seventy Thousand is fifteen and fifteen is seven and seven is five and five is four and four is the magic number
131,072 =>
One Hundred Thirty One Thousand Seventy Two is thirty seven and thirty seven is eleven and eleven is six and six is three and three is five and five is four and four is the magic number
999,999 =>
Nine Hundred Ninety Nine Thousand Nine Hundred Ninety Nine is fifty and fifty is five and five is four and four is the magic number
Règles
- L'entrée peut être extraite
STDIN
ou comme argument d'une fonction - L'entrée sera un nombre positif compris entre 0 et 999 999
- L'entrée ne contiendra que des nombres (elle suivra l'expression régulière
^[0-9]+$
) - L'entrée peut être considérée comme un entier ou une chaîne
- Lorsqu'ils sont convertis en chaîne de mots, les espaces et les tirets ne doivent pas être inclus dans le décompte (100 [cent] correspond à 10 caractères, pas 11. 1 742 [mille sept cent quarante-deux] correspond à 31 caractères, pas 36)
- Une fois converti en chaîne, 100 doit être Cent, pas Cent ou Cent, 1000 doit être Mille, pas Mille ou Mille.
- Une fois converti en une chaîne 142 devrait être cent quarante deux, pas cent et quarante deux
- La sortie ne respecte pas la casse et doit suivre le format " N est K et K est M et M est ... et quatre est le nombre magique" (sauf si l'entrée est 4, auquel cas la sortie doit simplement être "quatre est le nombre magique ")
- La sortie peut utiliser des nombres au lieu de lettres ("5 est 4 et 4 est le nombre magique" au lieu de "cinq est quatre et quatre est le nombre magique") tant que votre programme est toujours cohérent
- La sortie peut être soit la valeur de retour d'une fonction, soit imprimée sur
STDOUT
- Des échappatoires standard s'appliquent
- Il s'agit de code-golf , donc le programme le plus court en octets l'emporte. Bonne chance!
Prime
-30 octets si le programme fonctionne lorsque l'entrée est comprise entre -999 999 et 999 999.
Les nombres négatifs, lorsqu'ils sont convertis en mots, ont juste "négatif" devant eux. Par exemple, -4
"Negative Four", Negative Four est douze et douze est six et six est trois et trois est cinq et cinq est quatre et quatre est le nombre magique
-150 octets si le programme n'utilise aucune fonction intégrée pour générer la représentation sous forme de chaîne du nombre
Classement
Il s'agit d'un extrait de pile qui génère à la fois un classement et un aperçu des gagnants par langue.
Pour vous assurer que votre réponse s'affiche, veuillez commencer votre réponse avec un titre en utilisant le modèle Markdown suivant
## Language Name, N bytes
Où N est la taille, en octets, de votre soumission
Si vous souhaitez inclure plusieurs nombres dans votre en-tête (par exemple, en supprimant les anciens scores ou en incluant des indicateurs dans le nombre d'octets), assurez-vous simplement que le score réel est le dernier numéro de votre en-tête
## Language Name, <s>K</s> X + 2 = N bytes