递归函数
在函数内部,可以调用其他函数,如果一个函数在内部调用自身本身,这个函数就是递归函数。
下面我们以几个例子来说明递归函数的用法
1.阶乘
我们计算n!=1*2*3*4*(n-1)*n,用fact(n)实现如下
def fact(n):
if n==1:
return 1
else:
return n*fact(n-1)
调用fact(n)后,实现如下
>>> fact(3)
6
>>> fact(5)120
再举一个斐波拉契数列的例子,斐波拉契数列是这样子的:0,1,1,2,3,5,8,13,21....即每个数都是前2个数之和,用fib(n)函数实现如下:
注意:print不同的缩进值能得到完全不同的结果!!
>>> def fib(n):
a,b=0,1
count=1
while count<n:
a,b=b,a+b
count=count+1
<span style="color:#FF0000;">print (a)</span>
>>> fib(8)
13
>>> def fib(n):
a,b=0,1
count=1
while count<n:
a,b=b,a+b
count=count+1
<span style="color:#FF0000;">print (a)</span>
>>> fib(8)
1
1
2
3
5
8
13
注释如下:
a,b=b,a+b 相当于:
temp=b #先保存b的原值
b=a+b #赋b新值
a=temp #将b的原值赋予a