python简单的递归 |
|
P2P
L3
• 2020-10-17 • 回复 2 • 只看楼主
• 举报
|
常见递归问题例如求5的阶乘(5*4*3*2*1)
可以用循环来解决
i = 1
result = 1
while i<=5:
result = result * i
i+=1
print(result)
接下来是用函数递归的方法
def getNums(num):
if num>1:
return num * getNums(num-1)
else:
return num
result = getNums(5)
print(result)
递归问题其实就两个点,起始的值以及末尾的值,以5的阶乘为例,起始值为5,5乘上4的阶乘即可,而4的阶乘等于4乘上3的阶乘,以此类推直到乘到1为止,1就是末尾的值,乘0的话就没有意义了,所以当num等于1的时候返回1的值就行了
接下来可以优化一下,让用户进行输入
def getNums(num):
if num>1:
return num * getNums(num-1)
else:
return num
number = int(input("请输入一个数字"))
result = getNums(number)
print(result)
如果大家喜欢这样的教学方式,以后会尽量带来一些基础教学用代码讲解