一 .递归
递归的定义——在一个函数里再调用这个函数本身
递归的最大深度-997
例子算年龄 问你a几岁,a比b大2岁,b比c大2岁,c是40岁,问你a几岁?
# def age(n):
# if n == 3:
# return 40
# else:
# return age(n+1)+2
# print(age(1))
二. 二分算法(递归实现)
l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]
1 def cal(l,num,start,end):
2 '''
3
4 :param l: 是列表
5 :param num: 要找的数字
6 :param start: 开始索引
7 :param end: 结束索引
8 :return:
9 '''
10 if start<end:
11 mid = (end-start)//2 +start ##mid代表索引
12 # print(start,end)
13
14 if l[mid]< num:
15 return cal(l,num,mid+1,end)
16 elif l[mid]> num:
17 return cal(l,num,start,mid-1)
18 else:
19 return mid,l[mid]
20 else:
21 return '没找到'
22 print(cal(l,53,0,len(l)-1))