小白求助帖
def jiecheng(n):sum=1
for i in range(1,n):
sum=sum*i
i+=1
print(i)
return sum
想请教各位前辈,为什么这个实现不了阶乘呢 returnsum 位置不对
for循环本身就自增,你为啥要画蛇添足 解决了,谢谢 wp231957 发表于 2021-12-7 14:56
returnsum 位置不对
for循环本身就自增,你为啥要画蛇添足
嗯嗯,最重要的是返回sum要在for循环的外面 方法1
def fac(n):
sum = 1
for i in range(1,n+1):
sum = sum * i
print(i)
return sum
print(fac(5))
方法2
def jiecheng(n):
if n == 1 or n == 0:
return 1
else:
return n * jiecheng(n-1)
你的问题1 return的位置不对
问题2 for i in range(1,n) 不对应该是 n+1 , 因为 比如jiecheng(5) 按你的方式循环起来就是,1,2,3,4
这样就少一次* 5, 最终答案就错了 luck78 发表于 2021-12-7 15:15
方法1
方法2
嗯嗯,要不怎么说是小白求助呢。刚好学完递归,要不然方法2看不懂
页:
[1]