知己号码
让x
是任意的基础上,使得一个整数D
是其数字的阵列。x
如果n
是1
且介于的长度之间,则为Confidant Number D
:
D[n+1] = D[n] + D[n-1] + ... + D[1] + n
例如,以349
10为底的数字。如果我们为该数字标记索引,则具有以下内容。
Index Digit
----- -----
1 3
2 4
3 9
从第一个数字开始,我们有1 + 3 = 4
,它产生下一个数字。然后,使用第二个数字3 + 4 + 2 = 9
,再次产生下一个数字。因此,该号码是密友号码。
给定一个整数,其底数在1到62之间,请计算该底数的所有Confidant Number,并输出它们的列表,并用换行符分隔。您可以假设给定的基数有有限数量的Confidant Number。
对于大于9的数字,请使用字母字符A-Z
,对于大于数字的数字,请Z
使用字母字符a-z
。您不必担心超出的数字z
。
它们不必以任何特定顺序输出。
样本输入:
16
样本输出:
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
12
23
34
45
56
67
78
89
9A
AB
BC
CD
DE
EF
125
237
349
45B
56D
67F
125B
237F
这是代码高尔夫球,所以最短的代码获胜。祝好运!
(感谢Zach帮助格式化并指出了一些问题。)
CD
不在列表中?由于列出了第二个数字比第一个数字大一个的所有其他组合,因此我不明白为什么CD
不符合条件。