看一下从7×0到7×9的7乘法表:
0, 7, 14, 21, 28, 35, 42, 49, 56, 63
如果只看一个人的数字,就可以得到数字0到9的排列:
0, 7, 4, 1, 8, 5, 2, 9, 6, 3
考虑采用某个正的十进制整数N并将N中的每个数字D替换为7×D处的数字。
例如,15209
变得75403
因为1
映射到7
,5
映射到5
,2
映射到4
,0
映射到0
,并9
映射到3
。
现在让我们用这个新的十进制整数重复此过程,直到看到一个循环,即直到我们已经看到的整数出现为止。
例如,有了15209
周期
15209 -> 75403 -> 95801 -> 35607 -> 15209 -> repeats...
^
|
cycle restarts here
再举一个例子,505
周期短
505 -> 505 -> repeats...
^
|
cycle restarts here
事实证明,对于任何N个循环,这些循环将始终恰好包含1或4个不同的整数。(我将留给您找出原因。)有趣的是,如果将一个循环中的所有不同整数相加,则几乎总是得到一个仅由2
's和0
's 组成的十进制整数。
例如,15209 + 75403 + 95801 + 35607 = 222020。
N = 505是例外之一。循环中唯一的整数是505,因此总和本身是505。
以下是N = 1到60的循环总和:
N sum
1 20
2 20
3 20
4 20
5 5
6 20
7 20
8 20
9 20
10 200
11 220
12 220
13 220
14 220
15 220
16 220
17 220
18 220
19 220
20 200
21 220
22 220
23 220
24 220
25 220
26 220
27 220
28 220
29 220
30 200
31 220
32 220
33 220
34 220
35 220
36 220
37 220
38 220
39 220
40 200
41 220
42 220
43 220
44 220
45 220
46 220
47 220
48 220
49 220
50 50
51 220
52 220
53 220
54 220
55 55
56 220
57 220
58 220
59 220
60 200
我们将其称为“七周期总和序列”。
挑战
编写一个程序或函数,该程序或函数接受一个正的十进制整数N,并以十进制形式打印或返回“ Seven's Cycle Sum Sequence”的相应项。
例如,如果输入为95801
,则输出应为222020
。如果输入为505
,则输出应为505
。如果输入为54
,则输出应为220
。
以字节为单位的最短代码获胜。