1.递归的定义:
在函数内部直接或者间接调用函数本身
2.递归的应用:
求一个数的阶乘
def jiecheng(n):
if n == 1:
return 1
else:
return n*jiecheng(n-1)
print(jiecheng(4))
求第几个斐波那契数
'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def f(n):
if n == 2:
return 1
elif n ==1:
return 1
else:
return f(n-1)+f(n-2)
print(f(33))
二分法查找
l = [1,3,5,6,11,13,15,17,21,32,36,52,56,58,66,77,88,99]
def find(l,n,start=0,end=None):
end = len(l) if end is None else end
mid_index = (end-start)//2 + start
if start>=end:
return '找不到'
else:
if n>l[mid_index]:
return find(l,n,mid_index+1,end)
elif n<l[mid_index]:
return find(l,n,start,mid_index-1)
else:return mid_index
res = find(l,17)
print(res)