• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

Python—-递归函数

开发技术 开发技术 2周前 (05-02) 9次浏览
# 兔子问题:
# 1 1 2 3 5 7 12
# 第一天1只兔子 第二天1只兔子   第三天2只兔子   第四天3只兔子   后面每天的兔子数等于前2天的兔子数之和

# 定义函数,计算第n天的兔子数
def rabbit(n):
    # 递归结束的条件:n=2
    # 第一天和第二天兔子数都是1
    if n == 1 or n == 2:
        return 1
    # 之后的兔子数等于前2天的数量
    else:
        return rabbit(n - 1) + rabbit(n - 2)


# 定义函数,计算1-100的和
# 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9
# 普通递归
def he(n):
    if n == 1:
        return 1
    return n + he(n - 1)

# 优化后的:尾递归
def he_1(n, total=1):
    if n == 1:
        return total
    else:
        return he_1(n - 1, total=total + n)


if __name__ == '__main__':
    # 递归函数: 在自己的函数里面调用自己
    # 一般的使用递归函数的话,都是找数学关系,然后进行递归
    print(rabbit(20))
    print('练习一:', he(100), he_1(100))

 


程序员灯塔
转载请注明原文链接:Python—-递归函数
喜欢 (0)