Considere tomar un número entero no negativo como 8675309 y calcular los valores absolutos de las diferencias entre todos los pares de dígitos vecinos.
Para 8675309
que obtenemos |8-6| = 2
, |6-7| = 1
, |7-5| = 2
, |5-3| = 2
, |3-0| = 3
, |0-9| = 9
. Encadenación estos resultados juntos produce otro, entero no negativo más pequeño: 212239
. La repetición del proceso da 11016
, entonces 0115
, que según la convención que los ceros iniciales no se escriben se simplifica como 115
, que se convierte en , 04
o 4
que no se puede reducir más. Sumando todos estos valores, obtenemos 8675309 + 212239 + 11016 + 115 + 4 = 8898683
.
Definamos la suma de diferencias de dígitos (o DDS) como esta operación de tomar repetidamente las diferencias de dígitos de un número para formar un nuevo número, y luego agregar todos los números resultantes al original.
Aquí están los primeros 20 valores en la secuencia DDS correspondiente:
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
Aquí están los primeros 10000 valores , cuyo gráfico es bastante curioso:
Especialmente porque se ve igual cuando lo trazas a 1000 o incluso a 100:
(Yo lo llamaría la escalera del dentista ...)
Reto
Escriba un programa o función que tome un número entero no negativo e imprima o devuelva su valor DDS. Por ejemplo, si la entrada fue 8675309
, la salida debería ser 8898683
.
El código más corto en bytes gana.