码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-06-14 18:33:13      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:ber   search   number   list   个人   TE   def   进入   return   

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

用递归的方法找出列表中的值
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)

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

标签:ber   search   number   list   个人   TE   def   进入   return   

原文地址:https://www.cnblogs.com/Roc-Atlantis/p/9182813.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!