Розглянемо взяття деяких негативних цілих чисел, таких як 8675309, та обчислення абсолютних значень різниці між усіма парами сусідніх цифр.
Для 8675309
отримуємо |8-6| = 2
, |6-7| = 1
, |7-5| = 2
, |5-3| = 2
, |3-0| = 3
, |0-9| = 9
. Набирати ці результати разом дає інше, менше невід'ємне ціле число: 212239
. Повторення процесу дає 11016
тоді 0115
, що згідно з умовою, що провідні нулі не записуються, спрощує як 115
, що стає, 04
або 4
що більше не може бути зменшено. Підсумовуючи всі ці значення, ми отримуємо 8675309 + 212239 + 11016 + 115 + 4 = 8898683
.
Давайте визначимо суму різниці цифр (або DDS) як цю операцію багаторазового взяття різниць цифр числа для формування нового числа, а потім додавши всі отримані числа до оригіналу.
Ось перші 20 значень у відповідній послідовності 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
Ось перші 10000 значень , графік яких досить цікавий:
Тим більше, що це виглядає так само, коли ви плануєте його на 1000 або навіть 100:
(Я б назвав це сходами стоматолога ...)
Виклик
Напишіть програму або функцію, яка приймає невід'ємне ціле число і друкує або повертає її значення DDS. Наприклад, якщо вхід був 8675309
, вихід повинен бути 8898683
.
Виграє найкоротший код у байтах.