Nehmen Sie eine nicht negative Ganzzahl wie 8675309 und berechnen Sie die absoluten Werte der Differenzen zwischen allen Paaren benachbarter Ziffern.
Für 8675309
wir bekommen |8-6| = 2
, |6-7| = 1
, |7-5| = 2
, |5-3| = 2
, |3-0| = 3
, |0-9| = 9
. Diese Ergebnisse zusammen Bespannen liefert eine weitere, kleinere nicht-negative ganze Zahl ist : 212239
. Das Wiederholen des Vorgangs ergibt 11016
dann 0115
, was durch die Konvention, dass führende Nullen nicht geschrieben werden, vereinfacht wird, wie 115
, was wird 04
oder 4
was nicht weiter reduziert werden kann. Wenn wir all diese Werte zusammenfassen, erhalten wir 8675309 + 212239 + 11016 + 115 + 4 = 8898683
.
Definieren wir die Zifferndifferenzsumme (DDS) als diesen Vorgang, bei dem die Zifferndifferenzen einer Zahl wiederholt werden, um eine neue Zahl zu bilden, und dann alle resultierenden Zahlen zum Original hinzugefügt werden.
Hier sind die ersten 20 Werte in der entsprechenden DDS-Sequenz:
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
Hier sind die ersten 10000 Werte , für die die Grafik recht merkwürdig ist:
Zumal es beim Plotten auf 1000 oder sogar 100 gleich aussieht:
(Ich würde es die Treppe des Zahnarztes nennen ...)
Herausforderung
Schreiben Sie ein Programm oder eine Funktion, die eine nicht negative Ganzzahl einliest und deren DDS-Wert ausgibt oder zurückgibt. Wenn zum Beispiel die Eingabe war 8675309
, sollte die Ausgabe sein 8898683
.
Der kürzeste Code in Bytes gewinnt.