Également connu sous le nom de [racine analogique]
( En face de la racine numérique! );)
La racine numérique d'un nombre est la somme continue de ses chiffres jusqu'à ce qu'il s'agisse d'un seul chiffre, par exemple, la racine numérique de 89456 est calculée comme suit:
8 + 9 + 4 + 5 + 6 = 32
3 + 2 = 5
La racine numérique de 89456 est 5.
Étant donné un chiffre saisi via STDIN , imprimez / renvoyez tous les nombres à deux chiffres possibles qui ont cette racine numérique. Si vous en avez besoin, il peut s’inclure, par exemple 05
Ce sont toutes les entrées et sorties possibles:
(Vous pouvez choisir d'inclure ou non le zéro de tête pour le chiffre lui-même)
E / S
0 => 0 ou 00 ou rien
1 => 01 et / ou 1, 10, 19, 28, 37, 46, 55, 64, 73, 82, 91 - Assurez-vous que 1 ne renvoie pas 100
2 => 02 et / ou 2, 11, 20, 29, 38, 47, 56, 65, 74, 83, 92
3 => 03 et / ou 3, 12, 21, 30, 39, 48, 57, 66, 75, 84, 93
4 => 04 et / ou 4, 13, 22, 31, 40, 49, 58, 67, 76, 85, 94
5 => 05 et / ou 5, 14, 23, 32, 41, 50, 59, 68, 77, 86, 95
6 => 06 et / ou 6, 15, 24, 33, 42, 51, 60, 69, 78, 87, 96
7 => 07 et / ou 7, 16, 25, 34, 43, 52, 61, 70, 79, 88, 97
8 => 08 et / ou 8, 17, 26, 35, 44, 53, 62, 71, 80, 89, 98
9 => 09 et / ou 9, 18, 27, 36, 45, 54, 63, 72, 81, 90, 99
Pas de failles standard , et c'est du code-golf , donc la réponse la plus courte en octets l'emporte.
Félicitations à Heeby Jeeby Man pour sa réponse incroyable de 46 octets de brain-flak!
Réponses:
Pyke, 6 octets
Essayez-le ici!
la source
JavaScript (ES6),
273130 octetsRenvoie
0
pour0
ou un tableau de solutions sinon.Démo
Afficher l'extrait de code
la source
+
pour enregistrer un autre octet? Bien que cela ne fonctionnerait pas avec la chaîne stdin de cette façon, je suppose.+
vient ... Mis à jour. Merci!05AB1E ,
13129 octets-3 octets grâce à Adnan
Essayez-le en ligne!
Explication
la source
SOSO
, car le nombre ne sera jamais supérieur à 99.тL<
n'est pas vraiment plus court que simple99Ý
. ;)Haskell , 21 octets
f
prend un entier et retourne une liste d'entiers.Essayez-le en ligne!
d
et génère la plage avec chaque 9ème nombre jusqu'à une limite de 99, sauf dans le cas délicat de0
.0
, utilise cette puissance0^d==1
pour0
et==0
pour tous les autres chiffres. Ainsi99^0^0^d
donne1
pour ,0
mais99
pour tout le reste.la source
Gelée , 8 octets
Essayez-le en ligne!
Algorithme différent de mon autre réponse.
la source
Brain-Flak , 46 octets
Essayez-le en ligne!
Explication
Cette réponse utilise une idée de la réponse de Megatom, à savoir utiliser la hauteur de la pile comme différence entre le compteur de boucle et l'incrément. Comme les réponses précédentes, cette réponse a une grande boucle externe pour attraper tous les zéros. À l'intérieur de la boucle, nous poussons 10 pour agir comme un compteur, puis nous commençons une autre boucle imbriquée. Dans cette boucle, nous décrémentons le compteur de 1
Ensuite, nous éclatons les deux premiers éléments, qui sont le compteur et le dernier élément que nous avons calculé. Nous les ajoutons à la hauteur de la pile afin de contrebalancer la décrémentation, nous poussons ensuite cela deux fois, une fois pour la sortie et une fois afin qu'elle puisse être consommée pour calculer le résultat suivant. Pousser les choses deux fois signifie que nous poussons accidentellement une valeur supplémentaire qui doit être supprimée à la fin de l'exécution.
La raison pour laquelle cela bat à peine Megatom est que la réponse de Megatom est forcée d'obtenir ses hauteurs de pile alors que le dernier résultat est toujours sur la pile. Cela signifie qu'ils sont obligés d'utiliser un produit assez cher
[()]
pour diminuer le total de un. En déplaçant le doublon à la fin de la boucle, je suis en mesure d'éviter d'avoir à utiliser[()]
au prix d'un supplémentaire{}
à la toute fin du programme. Si Megatom devait utiliser cette stratégie, sa réponse ressemblerait à ceci:également 46 octets.
Brain-Flak , 52 octets
Essayez-le en ligne!
Explication
La boucle extérieure principale constitue un cas spécial pour l'entrée de zéro. Si zéro est entré, nous sautons sur toute la boucle, sautons zéro et ne sortons rien. Sinon, nous entrons dans la boucle. Ici, nous poussons la boucle 10 fois à chaque fois en ajoutant 9 en haut de la pile, en conservant les anciennes valeurs. Étant donné que 9 conserve les sommes numériques, cela nous donnera la valeur suivante. Une fois la boucle expirée, nous utilisons le zéro qu'elle a généré pour quitter la boucle qui est ensuite sautée par le
{}
à la fin.Brain-Flak , 56 octets
Essayez-le en ligne!
Explication
Cette version fonctionne de manière très similaire à la dernière, sauf que nous bouclons 9 fois au lieu de 10 en laissant de côté la valeur d'origine. Pour ce faire, nous devons réorganiser un peu la façon dont nous gérons la mémoire. Tous les octets que nous aurions pu enregistrer en utilisant cette méthode sont mis en nettoyage.
la source
Python 2 , 29 octets
Essayez-le en ligne!
la source
Brachylog , 12 octets
Essayez-le en ligne!
Explication
la source
Bash ,
3127 octetsEssayez-le en ligne!
précédent
la source
brace expansion: (...) A sequence expression takes the form {x..y[..incr]}, where x and y are either integers or single characters, and incr, an optional increment, is an integer. (...) When the increment is supplied, it is used as the difference between each term. The default increment is 1 or -1 as appropriate.
Dyalog APL, 15 octets
Comment?
⍵,10⍴9
- concaténer l'entrée avec 109
s (⍵ 9 9 9 9 9 9 9 9 9 9
).+\
- somme cumulée.(×⍵)/
- augmenter les temps de signum - où signum donne 1 pour 1-9 et 0 pour 0.Essayez-le en ligne!
Dyalog APL, 24 octets
Requiert
⎕IO←0
.Comment?
la source
Brain-Flak , 48 octets
Essayez-le en ligne!
Je peux ajouter une explication plus tard.
la source
Mathematica, 25 octets
fonctionne pour 0
la source
0
. Cela n'inclurait pas non plus les nombres dont les chiffres s'additionnent à un nombre supérieur à 9. (par exemple,9
il n'y en aurait pas99
dans la sortie).Gelée , 12 octets
Essayez-le en ligne!
Comment ça fonctionne
la source
0
En fait , 18 octets
Essayez-le en ligne!
Explication:
la source
PHP, 41 octets
imprime le soulignement des valeurs séparées
ERA
est la constante la plus courte en PHP avec la valeur131116
. Vous pouvez le remplacer par l'alternative ennuyeuse100
ou terminer le programme avecdie
Version en ligne
la source
Brain-Flak ,
5452 octetsEssayez-le en ligne!
Ma première incursion avec Brain-Flak, et je pense que j'ai plutôt bien réussi. Quelqu'un avec plus d'expérience a des conseils?
Comment ça fonctionne:
la source
Gelée , 12 octets
Essayez-le en ligne!
la source
PHP, 35
Crée la plage
[$argn, 100)
avec un pas de9
tableau et l'imprime. Si l'entrée est,0
elle crée la plage[0,0]
=>array(0)
.la source
Python,
4851 octets3 octets enregistrés grâce à @WheatWizard
la source
~-x
au lieu de(x-1)
if ~-x%9
~-n==~-x%9or x==n
pour enregistrer un octetR , 23 octets
Essayez-le en ligne!
Le lien TIO utilise
function(x)
au lieu depryr::f
, car TIO n'a pas lepryr
package installé.la source
Pyke, 6 octets (ancienne version)
Engagement de travail
Explication:
la source
Rubis , 25 octets
Essayez-le en ligne!
la source
C (gcc) , 55 octets
f()
n'a pas besoin d'être appelé avec un argument; len
est juste là au lieu de l'extérieur de la fonction pour enregistrer un octet.Essayez-le en ligne!
la source
printf
intérieur de l'en-tête de boucle: Essayez-le en ligne!Fusain ,
1411 octetsEssayez-le en ligne! Le lien est vers la version détaillée du code. Edit: sauvé
2 octets en n'imprimant rien pour une entrée nulle et 1 octet en utilisant les opérations de vectorisation3 octets grâce à @ ASCII uniquement. Explication:la source
Julia 0,6 , 18 octets
J'utilise un ternaire pour attraper le
0
cas et une plagen:9:99
pour créer les chiffres. En julia, une plage est unAbstractVector
et peut être utilisée à la place d'un nombre réelVector
dans la plupart des cas, mais elle s'imprimera simplement comme1:9:91
ce qui ne répond pas au défi, donc je l'enveloppe[_;]
pour collecter le contenu dans unVector
.Essayez-le en ligne!
la source
Perl 5 , 25 + 1 (
-n
) = 26 octetsEssayez-le en ligne!
la source
Clojure, 33 octets
la source
Clojure , 38 octets
ou en tant que fonction anonyme de 29 octets
Essayez-le en ligne!
merci @steadybox
la source
n=9
manque le dernier numéro99
,. Essayez-le en ligne! Vous pouvez également enregistrer un octet en supprimant l'espace entref[n]
et(if(...
.Perl 5, 62 octets
Il y a forcément un chemin plus court
la source
Gol> <> , 12 octets
Essayez-le en ligne!
Comment ça fonctionne
la source