这是我的代码:
def factR(n):
if n == 1:
return n
return n * factR(n-1)
for i in range (11):
print factR(i)
factR(n)函数可以正常工作。我已经测试过了但是,在我添加了最后两行之后,它返回了RuntimeError。我可以知道原因吗?
答案 0 :(得分:3)
您的代码不适用于n = 0
,它可以进行无限递归。 range(11)
代表我从0到10。
答案 1 :(得分:2)
您没有考虑n
等于0
的情况,但是您的范围从0(到10)开始。由于0!
等于1
,因此您只需更改:
if n == 1:
return n
收件人:
if n <= 1:
return 1
更改后,您的代码将输出:
1
1
2
6
24
120
720
5040
40320
362880
3628800
答案 2 :(得分:0)
如果您不想使用0!
,只需将range(11)
替换为range(1,11)
。否则,只需遵循其他用户的上述建议即可。