zoukankan      html  css  js  c++  java
  • 27 函数的递归

    # 二分查找算法 必须处理有序的列表
    # 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]

    def find(l,aim):
        mid_index = len(l) // 2
        if l[mid_index] < aim:
            new_l = l[mid_index+1 :]
            find(new_l,aim)
        elif l[mid_index] > aim:
            new_l = l[:mid_index]
            find(new_l, aim)
        else:
            print('找到了',mid_index,l[mid_index])
    
    find(l,66)

    但是,存在好多问题,所以

    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]
    def find(l,aim,start = 0,end = None):
        end = len(l) if end is None else end
        mid_index = (end - start)//2 + start
        if start <= end:
            if l[mid_index] < aim:
                return find(l,aim,start =mid_index+1,end=end)
            elif l[mid_index] > aim:
                return find(l, aim, start=start, end=mid_index-1)
            else:
                return mid_index
        else:
            return '找不到这个值'
    
    ret= find(l,44)
    print(ret)

     # 斐波那契  # 问第n个斐波那契数是多少

    # 1,1,2,3,5,8......     #fib(n) = fib(n-1) + fib(n-2)

    def fib(n,a=1,b=1):
        if n==1 : return a
        return fib(n-1,b,a+b)
    
    print(fib(5))

    # 阶乘

    def fac(n):
        if n == 1 :
            return 1
        return n * fac(n-1)
    
    print(fac(5))
    #120
  • 相关阅读:
    java获取文件夹下所有目录
    java下载zip文件
    oracle 递归查询数据
    easyUi刷新 tabs
    jsp引入本地图片
    zabbix web监测设置
    jenkins部署
    ss 异常活动端口查询-std
    logrotate 日志分割
    rsync删除大量小文件
  • 原文地址:https://www.cnblogs.com/bydzxzy/p/9697224.html
Copyright © 2011-2022 走看看