zoukankan      html  css  js  c++  java
  • python之递归函数

    一、初识递归

    递归的定义:在一个函数里在调用这个函数本身

    递归的最大深度--- 997 1 def func(n): 2 print(n) 3 n += 1 4 func(n) 5 func(1) 

    修改默认值 1 import sys 2 print(sys.setrecursionlimit(100000)) 

    二、递归实例

    alex老师多大了?我说我不告诉你,但alex比 egon 大两岁。

    你想知道alex多大,你是不是还得去问egon?egon说,我也不告诉你,但我比武sir大两岁。

    你又问武sir,武sir也不告诉你,他说他比金鑫大两岁。

    那你问金鑫,金鑫告诉你,他40了。。。

    这个时候你是不是就知道了?alex多大?

    1 def age(n):
    2     if n == 1:
    3         return 40
    4     else:
    5         return age(n-1)+2
    6 
    7 print(age(4))

    三、二分查找法

    # 查找算法
    # 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]
    # 从有序的列表中查找值66的位置
    # 方法一: 循环 # 5000000 4999999
    # 方法二: l.index(66) #最正确的方法
    # 方法三: 递归
     1 def find(l,aim,start=0,end=None):
     2     if end == None:end = len(l)-1
     3     if start <= end:
     4         mid = (end - start) // 2 + start
     5         if l[mid] > aim:
     6             return find(l,aim,start=start,end = mid-1)
     7         elif l[mid] < aim:
     8             return find(l,aim,start=mid+1,end=end)
     9         elif l[mid] == aim:
    10             return mid
    11     else:
    12         return None
    13 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]
    14 print('ret :',find(l,18))
    View Code
  • 相关阅读:
    元素显示模式
    cssW3c书写规范
    css字体标签相关
    标签显示模式
    css权重问题
    成员变量和局部变量的区别
    利用反射执行Spring方法,支持参数自动转换
    通用计价的简单代码实现
    关于数据迁移的记录
    【设计模式】----- 观察者模式
  • 原文地址:https://www.cnblogs.com/xiaobin12126/p/8473486.html
Copyright © 2011-2022 走看看