很多复杂的问题在没有发现明显的计算规律的时候,也许使用递归能帮我们得到答案。
使用递归的条件:
递归公式:第n次与第n-1次的关系
收敛条件:何时停止递归调用,无限递归会触发递归错误(溢出)
举一个简单的例子:计算n的阶乘 n! = n * (n-1)!
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
for i in range(1,101):
print(f'{i}的阶乘是:{factorial(i)}')
n等于0的时候停止递归调用
打印出1到100的阶乘,因为这个计算还不算复杂,所以秒出答案。
——————————————————————————————————
换一个问题:小孩爬楼梯,一次可爬1,2,3个台阶,n个台阶多少种走法?
def crawl(num