python中的递归

python中的递归学习笔记

python中的递归

递归说白了就是。。。自交,自己调用自己
满足条件:
1.调用函数自身
2.设置了自身正确的返回值

e.g.
求五的阶乘

1
2
3
4
5
6
7
8
def fac(n):
if n == 1:
return 1
else:
return n * fac(n-1)

num = input('input a number')
print(fac(int(num)))

e.g.
斐波那契数列
n = 1,n = 2,f(n) = 1
n > 2 ,f(n) = f(n-1) + f(n-2)
一般:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def feb(n):
n1 = 1
n2 = 1
n3 = 1
if n < 1:
print('illegle number')
while (n-2) > 0:
n3 = n1 + n2
n1 = n2
n2 = n3
n -= 1
return n3

num = int(input('input a num:n'))
print(feb(num))

递归:

1
2
3
4
5
6
7
8
9
10
def feb(n):
if 0 < n <= 2:
return 1
if 2 < n:
return feb(n-1) + feb(n-2)
else:
print('wrong input')

num = int(input('input a num'))
print(feb(num))