python 基础---递归

it2022-05-05  172

1 # 二分查找算法 必须处理有序的列表 2 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] 3 #print(l.index(66)) 4 5 # 代码实现 6 def find(l,aim,start = 0,end = None): 7 end = len(l) if end is None else end 8 mid_index = (end - start)//2 + start 9 if start <= end: 10 if l[mid_index] < aim: 11 return find(l,aim,start =mid_index+1,end=end) 12 elif l[mid_index] > aim: 13 return find(l, aim, start=start, end=mid_index-1) 14 else: 15 return mid_index 16 else: 17 return '找不到这个值' 18 19 ret= find(l,66) 20 print(ret) 1 #斐波拉契 2 def fib(n): 3 if n == 1 or n == 2: 4 return 1 5 else: 6 return fib(n-1) + fib(n-2) 7 8 print(fib(5)) 9 10 def fib(n): 11 if n == 2: 12 return 1,1 13 else: 14 a,b = fib(n-1) 15 return b,a+b 16 print(fib(5)) #阶乘 def fac(n): if n ==1: return 1 return n*fac(n-1)

 

转载于:https://www.cnblogs.com/dzc18/p/9416135.html

相关资源:python基础-函数详解

最新回复(0)