La radice digitale (anche ripetuta somma digitale) di un numero intero positivo è il valore (a singola cifra) ottenuto da un processo iterativo di somma delle cifre, su ciascuna iterazione usando il risultato della precedente iterazione per calcolare una somma di cifre. Il processo continua fino al raggiungimento di un numero a una cifra.
Ad esempio, la radice digitale di 65536 è 7 , perché 6 + 5 + 5 + 3 + 6 = 25 e 2 + 5 = 7 .
L'ordinamento di tutte le radici digitali non ha molto senso, dal momento che inizierebbe con infiniti 1 s.
Creeremo invece elenchi di tutti i numeri interi a singola cifra insieme alle loro radici digitali, quindi tutti i numeri a doppia cifra insieme alle loro radici digitali, quindi il triplo, il quadruplo e così via.
Ora, per ognuna di quelle liste, le ordineremo in modo che tutti gli interi con radici digitali di 1 compaiano prima, quindi tutti gli interi con radici digitali di 2 e così via. L'ordinamento sarà stabile, in modo che l'elenco di numeri interi con determinate radici digitali sia in ordine crescente dopo l'ordinamento.
Infine concateneremo questi elenchi in un'unica sequenza. Questa sequenza inizierà con tutti i numeri a una cifra, quindi tutti i numeri a doppia cifra (ordinati per radice digitale), quindi tutti i numeri a tre cifre e così via.
Sfida:
Dai positivo intero n in ingresso e uscita n 'esimo numero della sequenza sopra descritta. Puoi scegliere se l'elenco è 0 -indexed di 1 -indexed.
La sequenza è la seguente:
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, ...
Casi test:
I casi di test sono 1 indicizzati.
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
Più facile da copiare:
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
chiarimenti:
- Non puoi generare tutti e n i primi elementi. Dovrai solo emettere l' n .
- Il codice deve teoricamente funzionare per tutti i numeri interi fino a 10 ^ 9 , ma va bene se va in timeout su TIO (o altri interpreti con limiti di tempo) per input maggiori di 999 .
- Le spiegazioni sono incoraggiate.
È code-golf , quindi vince il codice più corto in ogni lingua! Non essere scoraggiato da altre soluzioni nella lingua in cui vuoi giocare a golf, anche se sono più brevi di quello che puoi gestire!