重度苗厨 2021-07-21 13:28 采纳率: 100%
浏览 223
已采纳

python昆虫繁殖问题

python3.9
要求:有一种虫子,从成虫经过x个月产下y对卵,卵经过两个月长成成虫。假设成虫不死,开始只有一对,过了z个月,输出成虫的数量。(x,y,z从键盘输入)
希望代码好理解些

  • 写回答

3条回答 默认 最新

  • python xxxyyyxxxyyy 2021-07-21 15:51
    关注

    根据题意递归:

    def math(x:int, y:int, z:int) -> int:
    
        result = 1 # 刚开始时必有一只成虫
        times = list(range(x, z-1, x))
        # 列表表示生产的时间,因为虫需两个月成长,因此结束值-1(range函数生成的列表不包括结束值,达到-2效果)
        
        for i in times:
            result += 2 * y * math(x, y, z-i-2)
            # 已经过了i个月,且需2个月成长,因此减去(i+2),递归,求剩余时间里这些虫能再生几个
    
        return result
    
    x = int(input('x:'))
    y = int(input('y:'))
    z = int(input('z:'))
    
    print(math(x, y, z))
    

    匆忙之下写成,可能有些不准确、不严谨。如果能帮到你,望采纳!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已采纳回答 7月22日
  • 创建了问题 7月21日

悬赏问题

  • ¥15 关于#.net#的问题:End Function
  • ¥50 用AT89C52单片机设计一个温度测量与控制电路
  • ¥15 无法import pycausal
  • ¥15 VS2022创建MVC framework提示:预安装的程序包具有对缺少的注册表值的引用
  • ¥15 weditor无法连接模拟器Local server not started, start with?
  • ¥20 6-3 String类定义
  • ¥15 嵌入式--定时器使用
  • ¥20 51单片机学习中的问题
  • ¥30 Windows Server 2016利用兩張網卡處理兩個不同網絡
  • ¥15 Python中knn问题