输入:
由0-9范围内的数字组成的正整数n。
挑战:
如果d是整数中的最高位数,则假定数字的底数是d + 1。例如,如果整数是1256,则应假定它以7为底,如果它是10110,则应假定其以2为底(二进制),如果是159,则应为十进制。
现在,执行以下操作,直到:1:达到以10为底的整数,或 2:达到一位整数。
- 将整数从base-(d + 1)转换为base-10
- 查找此新整数的底数(再次是base-(d + 1),其中d是新数字中的最高位数)
- 转到步骤1。
例子:
假设输入为n = 413574。最高位数d = 7,所以这是基数8(八进制)。将此转换为十进制并得到137084。最高位数d = 8,所以这是以9为底的。将此转换为十进制并获得83911。最高位数是9,所以这是一个十进制数,我们停止。输出应为83911。
假设输入为n = 13552。最高的数字是d = 5,所以这是以6为底的数字。将此转换为十进制并得到2156。最高位数d = 6,所以这是基数7。将此转换为十进制并得到776。最高位数是d = 7,所以这是以8为底的。将此转换为十进制并获得510。最高的数字是d = 5,所以这是以6为底的数字。将此转换为十进制并得到186。最高的数字是8,所以这是以9为底的数字。将此转换为小数并得到159。最高位数是9,所以这是一个十进制数,我们停止。输出应为159。
假设输入为n = 17。这将使我们得到15,然后是11,然后是3,因为它是个位数,所以我们将输出。
测试用例:
5
5
17
3
999
999
87654321 (base-9 -> 42374116 in decimal -> base-7 -> 90419978 in decimal)
9041998
41253 (5505 -> 1265 -> 488 -> 404 -> 104 -> 29)
29
笔记:
- 有关I / O,漏洞等的标准规则。您可以将输入作为字符串
- 鼓励解释
- 您可以使用内置的基本转换命令
- 不使用该语言的内置基本转换函数(如果存在)的解决方案是受欢迎的,即使它们比使用内置函数的明显方法要长得多。
显然,这是OEIS A091047。