1. 程式人生 > >python函數八(遞歸函數)

python函數八(遞歸函數)

遞歸 n) Go sys str 。。 mit pos sta

一。遞歸函數

遞歸的定義——在一個函數裏再調用這個函數本身

def func():
    print(111)
    return func()
func()

遞歸的最大深度——997

n = 1
def func(n):
    print(n)
    n += 1
    return func(n)
func(1)

修改遞歸最大深度

import sys
print(sys.setrecursionlimit(100000))

例一:

現在你們問我,alex老師多大了?我說我不告訴你,但alex比 egon 大兩歲。

你想知道alex多大,你是不是還得去問egon?egon說,我也不告訴你,但我比武sir大兩歲。

你又問武sir,武sir也不告訴你,他說他比金鑫大兩歲。

那你問金鑫,金鑫告訴你,他40了。。。

這個時候你是不是就知道了?alex多大?

def age(n):
    if n == 1:
        return 40
    elif 1 < n <= 4:
        return age(n-1)+2

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對應的索引位置

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 = len(l)-1): # if end == None:end = len(l)-1 if start <= end: mid = (end - start) // 2 + start if l[mid] < aim: return find(l,aim,start=mid+1,end = end) elif l[mid] > aim: return find(l,aim,start=start,end=mid-1)
elif l[mid] == aim:return mid else:return None ret = find(l,66) print(ret)

python函數八(遞歸函數)