python基础教程:递归函数教程

1.递归的定义:

在函数内部直接或者间接调用函数本身

2.递归的应用:

求一个数的阶乘

def jiecheng(n):
    if n == 1:
        return 1
    else:
        return n*jiecheng(n-1)
print(jiecheng(4))

求第几个斐波那契数

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def f(n):
    if n == 2:
        return 1
    elif n ==1:
        return 1
    else:
        return f(n-1)+f(n-2)
print(f(33))

二分法查找

l = [1,3,5,6,11,13,15,17,21,32,36,52,56,58,66,77,88,99]
def find(l,n,start=0,end=None):
    end = len(l) if end is None else end
    mid_index = (end-start)//2 + start
    if start>=end:
        return '找不到'
    else:
        if n>l[mid_index]:
            return find(l,n,mid_index+1,end)
        elif n<l[mid_index]:
            return find(l,n,start,mid_index-1)
        else:return mid_index

res = find(l,17)
print(res)

猜你喜欢

转载自blog.csdn.net/sinat_38682860/article/details/120041498