递归到最后不都是会变为1吗,为什么返回的不是return 1
def factorial(n):
if n==1:
return 1
else:
return n*factorial(n-1)
number=int(input('请输入一个正整数:'))
result=factorial(number)
print("%d的阶乘是:%d"%(number,result))
递归到最后不都是会变为1吗,为什么返回的不是return 1
def factorial(n):
if n==1:
return 1
else:
return n*factorial(n-1)
number=int(input('请输入一个正整数:'))
result=factorial(number)
print("%d的阶乘是:%d"%(number,result))
改下代码,增加输出
def factorial(n):
print("现在处理",n)
if n==1:
return 1
else:
print("递归调用", n-1)
m = n*factorial(n-1)
print("递归返回值", m,"返回给上一层")
return m
number=int(input('请输入一个正整数:'))
result=factorial(number)
print("%d的阶乘是:%d"%(number,result))