考虑采用一些非负整数(例如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)定义为以下操作:重复获取数字的数字差以形成新数字,然后将所有结果数字加到原始数字上。
以下是相应DDS序列中的前20个值:
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
。
以字节为单位的最短代码获胜。