函数递归 - 递推与回溯 练习题

递归与二分法习题
二分法就是在按照从大到小或者从小到大规律排布的列表中,
寻找的值通过与中间的值比较大小,从而对列表进行操作,然后再比较的循环过程。

用递归的方法找出列表中的值
num = [1,3,4,5,6,8,22,33,55,778,990]
def search(search_number,num):
if len(num) == 0:return
mid = len(num) // 2
mid_nums = num[len(num)//2]
if search_number > mid_nums:
num = num[mid + 1:]
search(search_number,num)
elif search_number < mid_nums:
num = num[:mid]
search(search_number, num)
else:
print("find it")

search(363,num)

2.根据最后一个人的年龄,猜测第一个人的年龄

# def age(n): # 猜第五个人的年龄,传进参数5
# if n == 1: # 已知最后一个人的年龄 为26 (条件成立,递推结束后,开始回溯)
# return 26
# return age(n-1) + 2 # age(4) +2 ---》 age(3) + 2 ---> age(2) +2 --->age(1) +2
#
# print(age(5))

3.列表嵌套列表,用递归取得列表中的所有值。
l=[1,[2,[3,[4,[5,[6,[7,[8,[9,]]]]]]]]]

def tell(l):
for item in l:
if type(item) is list:
#继续进入下一层递归
tell(item)
else:
print(item)

tell(l)

猜你喜欢

转载自www.cnblogs.com/Roc-Atlantis/p/9182813.html