La racine numérique (également la somme numérique répétée) d'un entier positif est la valeur (à un chiffre) obtenue par un processus itératif de sommation de chiffres, à chaque itération en utilisant le résultat de l'itération précédente pour calculer une somme de chiffres. Le processus se poursuit jusqu'à ce qu'un nombre à un chiffre soit atteint.
Par exemple, la racine numérique de 65536 est 7 , car 6 + 5 + 5 + 3 + 6 = 25 et 2 + 5 = 7 .
Le tri de toutes les racines numériques n'a pas beaucoup de sens, car il ne ferait que commencer par une infinité de 1 s.
Au lieu de cela, nous allons créer des listes de tous les entiers à un chiffre avec leurs racines numériques, puis tous les nombres à deux chiffres avec leurs racines numériques, puis le triple, le quadruple et ainsi de suite.
Maintenant, pour chacune de ces listes, nous allons le trier de sorte que tous les entiers avec des racines numériques de 1 apparaissent en premier, puis tous les entiers avec des racines numériques de 2 et ainsi de suite. Le tri sera stable, de sorte que la liste des entiers avec certaines racines numériques devrait être dans l'ordre croissant après le tri.
Enfin, nous allons concaténer ces listes en une seule séquence. Cette séquence commencera avec tous les numéros à un chiffre, puis tous les numéros à deux chiffres (triés par leur racine numérique), puis tous les numéros à trois chiffres et ainsi de suite.
Défi:
Prendre un positif entier n en entrée, et la sortie du n -ième nombre dans la séquence décrite ci - dessus. Vous pouvez choisir si la liste est indexée sur 0 ou indexée sur 1 .
La séquence se déroule comme suit:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 19, 28, 37, 46, 55, 64, 73, 82, 91, 11, 20, 29 ...
72, 81, 90, 99, 100, 109, 118, ...
981, 990, 999, 1000, 1009, 1018, 1027, ...
Cas de test:
Les cas de test sont indexés 1.
n f(n)
9 9
10 10
11 19
40 13
41 22
42 31
43 40
44 49
45 58
600 105
601 114
602 123
603 132
604 141
605 150
4050 1453
4051 1462
4052 1471
4053 1480
4054 1489
4055 1498
Plus facile à copier:
n = 9, 10, 11, 40, 41, 42, 43, 44, 45, 600, 601, 602, 603, 604, 605, 4050, 4051, 4052, 4053, 4054, 4055,
f(n) = 9, 10, 19, 13, 22, 31, 40, 49, 58, 105, 114, 123, 132, 141, 150, 1453, 1462, 1471, 1480, 1489, 1498
Précisions:
- Vous ne pouvez pas afficher tous les n premiers éléments. Tu ne la sortie n « e.
- Le code doit théoriquement fonctionner pour tous les entiers jusqu'à 10 ^ 9 , mais c'est OK s'il expire sur TIO (ou d'autres interprètes avec des restrictions de temps) pour des entrées supérieures à 999 .
- Des explications sont encouragées.
C'est le code-golf , donc le code le plus court dans chaque langue gagne! Ne soyez pas découragé par d'autres solutions dans la langue dans laquelle vous voulez jouer au golf, même si elles sont plus courtes que ce que vous pouvez gérer!