我正在应对编码挑战,我正在使用这个问题来让自己习惯递归。这个问题给了我一个任意长度的整数 n,我的工作是将所有数字相加,直到它变成一个数字,然后输出发生的次数。
为了说明,假设值为 87559:
8+7+5+5+9 = 34
3 + 4 = 7
所以返回值为 2。如果 n 为1,000,000
,则返回值为 1。
我觉得这是一个递归问题,所以我试图让这部分首先工作。这是我的代码:
def digitDegree(n):
return digitDegree(sum(map(int, str(n)))
但是,这是错误:
Traceback (most recent call last):
main.py3 in the pre-written template, in getUserOutputs
userOutput = _runlnlao(testInputs[i])
main.py3 in the pre-written template, in _runlnlao
return digitDegree(*_fArgs_qeqrszlgdnyi)
main.py3 on line 13, in digitDegree
return digitDegree(sum(map(int, str(n))))
main.py3 on line 13, in digitDegree
return digitDegree(sum(map(int, str(n))))
main.py3 on line 13, in digitDegree
return digitDegree(sum(map(int, str(n))))
[Previous line repeated 9993 more times]
RecursionError: maximum recursion depth exceeded while getting the str of an object