递归函数
在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。
计算阶乘n! = 1 x 2 x 3 x ... x n
def fact(n):
if n==1:
return 1
return n * fact(n - 1)
计算过程
===> fact(5)
===> 5 * fact(4)
===> 5 * (4 * fact(3))
===> 5 * (4 * (3 * fact(2)))
===> 5 * (4 * (3 * (2 * fact(1))))
===> 5 * (4 * (3 * (2 * 1)))
===> 5 * (4 * (3 * 2))
===> 5 * (4 * 6)
===> 5 * 24
===> 120
使用递归函数计算斐波那契数列第10位的数值是多少
大概思路:第10位的话就应该明白递归次数为10次,需要在外部每次减1 内部为1的时候返回(原想法是在想返回的值是否可以利用到数列的计算当中,不过想了半天我还是无法利用。所以只能用递归来进行计数了。)最后计算10次之后将值返回
a ,b = 1,1
def fb(n):
global a, b
if n ==1:
return n
a ,b = b,a+b
fb(n - 1)
return a
print(fb(10))
#下面为常规for循环求数列
a,b = 1,1
for i in range(11):
print(a,end=" ")
a,b = b, a + b