甲三角形号码是可以被表示为连续的正整数的总和,从1开始。它们也可以与式表示的数n(n + 1) / 2
,其中n
一些正整数。
数字的数字角对应项是通过以下方式计算的:
- 将数字拆分成一个数字数组,例如
613 => [6 1 3]
- 对于数组中的每个数字,计算
n
第三角形数;[6 1 3] => [21 1 6]
- 对结果数组求和;
[21 1 6] => 28
给定一个整数n
,您的任务是反复计算n
的数字角对应物,直到结果等于1,然后输出所有计算出的值。您可以以任何顺序输出值,并且可以在数组的开头随意包含原始数字。这是一个代码高尔夫球,因此最短的代码获胜。
测试用例
23 => 9 45 25 18 37 34 16 22 6 21 4 10 1
72 => 31 7 28 39 51 16 22 6 21 4 10 1
55 => 30 6 21 4 10 1
78 => 64 31 7 28 39 51 16 22 6 21 4 10 1
613 => 28 39 51 16 22 6 21 4 10 1
8392 => 90 45 25 18 37 34 16 22 6 21 4 10 1
11111 => 5 15 16 22 6 21 4 10 1
8592025 => 117 30 6 21 4 10 1
999999999 => 405 25 18 37 34 16 22 6 21 4 10 1
141
且有n
数字。它的数字对角数可以具有的最大值是45n
,所以digi-△(x) ≤ 45n < 45(1+log_10(x))
,对于x > 141
,我们有45(1+log_10(x)) < x
,因此digi-△(x) ≤ x-1
对于x > 141
,一旦通过141
限制,就可以通过程序进行蛮力证明。