Prendi in considerazione di prendere un numero intero non negativo come 8675309 e calcolare i valori assoluti delle differenze tra tutte le coppie di cifre vicine.
Per 8675309
otteniamo |8-6| = 2
, |6-7| = 1
, |7-5| = 2
, |5-3| = 2
, |3-0| = 3
, |0-9| = 9
. Stringing questi risultati insieme produce un altro, più piccolo numero intero non negativo: 212239
. Ripetendo il processo si ottiene 11016
, quindi 0115
, che per convenzione che gli zeri iniziali non vengono scritti semplifica come 115
, che diventa 04
o 4
, che non può essere ulteriormente ridotto. Sommando tutti questi valori otteniamo 8675309 + 212239 + 11016 + 115 + 4 = 8898683
.
Definiamo la somma delle differenze delle cifre (o DDS) come questa operazione di prendere ripetutamente le differenze delle cifre di un numero per formare un nuovo numero, quindi aggiungere tutti i numeri risultanti all'originale.
Ecco i primi 20 valori nella corrispondente sequenza DDS:
N DDS(N)
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 11
11 11
12 13
13 15
14 17
15 19
16 21
17 23
18 25
19 27
Ecco i primi 10000 valori , il cui grafico è abbastanza curioso:
Soprattutto dal momento che sembra lo stesso quando lo si stampa su 1000 o anche su 100:
(Lo definirei la scala del dentista ...)
Sfida
Scrivi un programma o una funzione che accetta un numero intero non negativo e stampa o restituisce il suo valore DDS. Ad esempio, se l'input fosse 8675309
, l'output dovrebbe essere 8898683
.
Vince il codice più breve in byte.