#递归不仅仅是学习python中会遇到的一些问题,在学习每一个语言的过程中都会遇到递归。使用递归可以让复杂的循环变得简单。
递归:程序调用自身的行为
1、写一个数的阶乘
#递归 def factor(n): if n==1 or n==2: return n else: return n*factor(n-1) print(factor(4)) 24 #循环 sum=1 n = int(input('请输入一个数:')) for i in range(1,n+1): sum *=i print(sum) 24
2、斐波那契数列问题(也称作兔子繁殖问题,一列数从第三项开始,每一项的值都是前面两项的和,求第n项的值为多少)
#循环 def recur(n): a1 = 1 a2 = 1 if n<=2: return -1 while n-2>0: a3 = a1 + a2 a1 = a2 a2 = a3 n -= 1 return a2 print(recur(12))
144 #递归 def recur(n): if n==1 or n==2: return 1 else: return recur(n-1)+recur(n-2) print(recur(12))
144