函数递归 - 递推与回溯 练习题
Posted roc-atlantis
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数递归 - 递推与回溯 练习题相关的知识,希望对你有一定的参考价值。
递归与二分法习题
二分法就是在按照从大到小或者从小到大规律排布的列表中,
寻找的值通过与中间的值比较大小,从而对列表进行操作,然后再比较的循环过程。
用递归的方法找出列表中的值
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)
以上是关于函数递归 - 递推与回溯 练习题的主要内容,如果未能解决你的问题,请参考以下文章