#1 1 2 3 5 8 13 21 34 55 斐波拉切 效率慢 2次递归调用
def fib(n):
if n==2 or n==1:
return 1
else:
return fib(n-1)+fib(n-2)
print(fib(10))
#1 1 2 3 5 8 13 21 34 55 斐波拉切 提高效率解法
def dib(x):
if x==1 or x==2:
return 1,1
else:
m,n=dib(x-1)
return n,m+n
print(dib(10))
# 第一次
def dib(x): #10
if x==1 or x==2:
return 1,1
else:
m,n=dib(x-1) # dib(9)接收 21,34
return n,m+n#返回34,55
print(dib(10))
#第二次
def dib(x):#9
if x==1 or x==2:
return 1,1
else:
m,n=dib(x-1)## dib(8) #接收13,21
return n,m+n#返回 21,34
print(dib(10))
#第三次
def dib(x):#8
if x==1 or x==2:
return 1,1
else:
m,n=dib(x-1)## dib(7)接收8,13
return n,m+n#返回 13,21
print(dib(10))
#第四次
def dib(x): #7
if x==1 or x==2:
return 1,1
else:
m,n=dib(x-1)## dib(6) 接收5,8
return n,m+n #返回8,13
print(dib(10))
#第五次
def dib(x):#6
if x==1 or x==2:
return 1,1
else:
m,n=dib(x-1)## dib(5) 接收3,5
return n,m+n #返回5,8
print(dib(10))
#第六次
def dib(x):#5
if x==1 or x==2:
return 1,1
else:
m,n=dib(x-1)## dib(4) 接收2,3
return n,m+n #返回 3,5
print(dib(10))
#第七次
def dib(x):#4
if x==1 or x==2:
return 1,1
else:
m,n=dib(x-1)## dib(3)接收 1,2
return n,m+n#返回 2,3
print(dib(10))
#第八次
def dib(x):#3
if x==1 or x==2:
return 1,1
else:
m,n=dib(x-1)## dib(2) #接收1,1
return n,m+n # 返回1,2
print(dib(10))
#第九次
def dib(x):#2
if x==1 or x==2:
return 1,1 #返回 1,1
else:
m,n=dib(x-1)##
return n,m+n
print(dib(10))
#阶乘
def f(s):
if s==1:
return 1
else:
return f(s-1)*s
print(f(5))