zoukankan      html  css  js  c++  java
  • Python----递归函数

    # 兔子问题:
    # 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))
  • 相关阅读:
    026.MFC_发送消息
    021.MFC_字体和颜色对话框
    020.MFC_文件对话框
    015.MFC_Menu
    qt http get post实现
    openssl error: unrecognized command line option '-m64'
    ModbusTCP协议
    013.MFC_TreeControl
    菱形继承问题以及解决
    ffmpeg
  • 原文地址:https://www.cnblogs.com/Z-Queen/p/14726129.html
Copyright © 2011-2022 走看看