递归小栗子

一、alex多大了

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

二、阶乘
def jiec(n):
    	   if n == 1:
        	return 1
    	   else:
        	return n*jiec(n-1)
       print(jiec(3))              # 6

三、斐波那契数列
def feib(n):
    if n == 1 or n == 2:
        return 1
    else:
        return feib(n-1) + feib(n-2)
print(feib(33))               # 3524578
四、二分查找
def erfen(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:
            return erfen(l,aim,start,mid-1)
        elif l[mid] > aim:
            return erfen(l,aim,mid+1,end)
        else:
            return aim,mid
    else:
        print('找不到')
l = [1,2,4,59,60,78,90]
print(erfen(l,59))
五、三级菜单
def f(m):
    while True:
        for i in m:
            print(i)
        choice = input('选择:')
        if choice == 'q' or choice == 'b':
            return choice
        elif choice in m and m[choice]:
            borq = f(m[choice])
            if borq == 'q':
                return 'q'
print(f(menu))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值