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

seven

时间:2017-11-13 18:23:12      阅读:82      评论:0      收藏:0      [点我收藏+]

标签:find   turn   携程   return   eve   找不到   北京   inpu   老男孩   

二分查找算法

在执行的时候每次都是取出列表的中间位置的值来和要查找的值相比较,如果中间值小于目标值,则在后半部分中寻找;找出后半部分的中间值,再与目标值相比较,以此类推。

def find_2(l,aim,start=0,end=None):
    if end == None:end = len(l) - 1
    if start <= end:
        mid = (end-start) // 2  + start
        if l[mid] > aim:
            find_2(l,aim,start,mid-1)
        elif l[mid] < aim:
            find_2(l,aim,mid+1,end)
        else:
            print(aim,mid)
    else:
        print(‘找不到这个值‘)
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]
find_2(l,32)
# 32 10

 

alex的年龄问题:

def age(n):
    if n == 4:
        return 40
    return age(n+1)+2
print(age(1))
# 46

阶乘:

def f(n):
    if n==1:
        return 1
    return n*f(n-1)
print(f(3))
# 6

斐波那契数列

def fib(n):
    if n==1 or n==2:
        return 1
    return fib(n-1)+fib(n-2)
print(fib(8))
# 21

三级菜单:

menu = {
    ‘北京‘: {
        ‘海淀‘: {
            ‘五道口‘: {
                ‘soho‘: {},
                ‘网易‘: {},
                ‘google‘: {}
            },
            ‘中关村‘: {
                ‘爱奇艺‘: {},
                ‘汽车之家‘: {},
                ‘youku‘: {},
            },
            ‘上地‘: {
                ‘百度‘: {},
            },
        },
        ‘昌平‘: {
            ‘沙河‘: {
                ‘老男孩‘: {},
                ‘北航‘: {},
            },
            ‘天通苑‘: {},
            ‘回龙观‘: {},
        },
        ‘朝阳‘: {},
        ‘东城‘: {},
    },
    ‘上海‘: {
        ‘闵行‘: {
            "人民广场": {
                ‘炸鸡店‘: {}
            }
        },
        ‘闸北‘: {
            ‘火车战‘: {
                ‘携程‘: {}
            }
        },
        ‘浦东‘: {},
    },
    ‘山东‘: {},
}
def menu_3(menu):
    while True:
        for key in menu:
            print(key)
        choice=input(‘选择:‘)
        if choice == ‘q‘ or choice == ‘b‘:
            return choice
        elif choice in menu and menu_3(menu[choice]):
            borq = menu_3(menu[choice])
            if borq == ‘q‘:
                return ‘q‘
menu_3(menu)

seven

标签:find   turn   携程   return   eve   找不到   北京   inpu   老男孩   

原文地址:http://www.cnblogs.com/gumo/p/7827126.html

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