Etant donné un entier positif n
( Exemple:n=1234444999
)
- Séparer en séries de chiffres consécutifs:
[1, 2, 3, 4444, 999]
- Prenez le produit numérique de chaque course.
[1, 2, 3, 4*4*4*4, 9*9*9] = [1, 2, 3, 256, 729]
- En résumé ...
- 991
- Répétez jusqu'à ce que cela converge vers un seul numéro:
- 1234444999
- 991
- 82
- dix
- 1
- Retourne le dernier numéro.
Cas de test
BASE CASES:
0 = 0
...
9 = 9
OTHER CASES:
1234444999 = 1
222222222222222 = 8
111222333444555666777888999000 = 9
11122233344455566677788899 = 8
1112223334445 = 6
14536 = 1
99 = 9
Exemple demandé:
334455553666333
9+16+625+3+216+27
896
8+9+6
23
2+3
**5**
Gagnant?
C'est le golf de code , le nombre d'octets le plus bas est le gagnant.
11122233344455566677788899
.33445555666333
:?Réponses:
05AB1E ,
765 octetsMerci à Emigna d' avoir enregistré un octet!
Utilise l' encodage 05AB1E . Essayez-le en ligne!
la source
gF
parv
.Gelée, 9 octets
Essayez-le en ligne
Voici comment ça fonctionne:
la source
€
.Œg
est incohérent quand il n'y a qu'un seul groupe. Quel est le raisonnement derrière cela?Mathematica,
5542 octets-13 octets de @JungHwan Min . Merci!
au cas où quelqu'un voudrait l'utiliser comme générateur de chiffres aléatoires,
voici le décompte des 100.000 premiers chiffres
la source
Japt ,
171513 octetsTestez-le en ligne! Prend l'entrée sous forme de chaîne.
Toujours pas satisfait de cette réponse ...
Explication
la source
x_×
combinaison avecI'm unsatisfied
m'a fait rire. Merci ;).ß
que c'était peut-être la voie à suivre ici. J'avais tort! (Au moins à 5 h 5 du matin, je me suis assis dans le bus pour l'aéroport, j'étais!)Python 3 , 96 octets
Essayez-le en ligne!
la source
Brachylog , 8 octets
Essayez-le en ligne!
Explication
la source
Pyth, 11 octets
Essayez-le en ligne. Suite de tests.
la source
PHP , 113 octets
Essayez-le en ligne!
la source
Husk , 8 octets
Prend et retourne un entier. Essayez-le en ligne!
Explication
Avoir un intégré pour les chiffres de base 10 serait bien ...
la source
JavaScript (ES6),
77736765 octetsEnregistré 2 octets grâce à @CraigAyre
Comment?
L'entrée s est transformée en une expression arithmétique avec:
Par exemple,
1234444999
devient+1+2+3+4*4*4*4+9*9*9
.Nous évaluons cette expression et effectuons un appel récursif avec le résultat jusqu'à ce qu'il soit réduit à un seul chiffre décimal.
Cas de test
Afficher l'extrait de code
la source
f=s=>s>9?f(''+eval(s.replace(/(.)\1*/g,s=>'+'+[...s].join`*`))):s
CJam , 22 octets
Essayez-le en ligne!
la source
Haskell ,
1037069 octetsEssayez-le en ligne!
la source
until(<10)
. Lemap(read.pure)
peut également être déplacé avantshow
, ce qui enregistre les parenthèses.$
place des parenthèses externes.R ,
114104 octetslit à partir de stdin; renvoie la réponse sous forme de chaîne.
Essayez-le en ligne!
la source
paste
place deas.character
. Le premier contraint son entrée encharacter
type ;-)MATL, 11 octets
Essayez-le sur MATL Online
Explication
la source
Perl 5 , 50 octets
49 octets de code +
-p
indicateur.Essayez-le en ligne!
la source
R,
9796 octetsApproche légèrement différente de l' autre réponse en utilisant R .
Cette réponse utilise la
rle
fonction, quicompute[s] the lengths and values of runs of equal values in a vector
.-1 octets grâce à @Giuseppe!
la source
**
est équivalent à^
Braingolf, 25 octets
Ajoutera un lien TIO une fois que j'aurai Dennis pour extraire la dernière version, car l'utilisation d'opérateurs gourmands à l'intérieur des
(...)
boucles est actuellement interrompue sur TIOExplication
la source
Japt , 19 octets
Essayez-le en ligne!
Explication:
la source