用python解决养兔子趣味问题

简介: 今天看到了一个很有趣的养兔子问题,决定尝试一下,各位大佬如果有其他思路,欢迎交流,在评论区写下你的想法哦!

今天看到了一个很有趣的养兔子问题,决定尝试一下,各位大佬如果有其他思路,欢迎交流,在评论区写下你的想法哦!


🍊题目

有⼀对兔⼦,从出⽣后第3个⽉起每个⽉都⽣⼀对兔⼦,⼩兔⼦⻓到第三个⽉后每个⽉⼜⽣⼀对兔⼦,假如兔⼦都不死,问每个⽉的兔⼦总数为多少?


🍊分析

考虑到三个⽉成熟,我们可以构建四个数据,其中:⼀⽉兔每个⽉⻓⼤成为⼆⽉兔,⼆⽉兔变三⽉兔,三⽉兔变成年兔,成年兔(包括新成

熟的三⽉兔)⽣等量的⼀⽉兔。

转化为程序思路:

month_1_rabbit = month_elder_rabbit(上一个月的) + month_3_rabbit(上一个月的)
month_2_rabbit = month_1_rabbit(上一个月的)
month_3_rabbit = month_2_rabbit(上一个月的)
month_elder_rabbit = month_elder_rabbit + month_3_rabbit(上一个月的三月兔)

image.png

是不是一下子看起来很清楚了,嘿嘿嘿!!!

注:图中数字是兔子对数。

同时为了简化问题,我们的兔子用对表示,最终个数用对数乘2就行。

month = int(input("请输入兔子繁殖月数:"))
#初始化数量
month_1_rabbit = 1
month_2_rabbit = 0
month_3_rabbit = 0
month_elder_rabbit = 0
sum = 0
for i in range(1,month+1):
    #取变量t1,t2,t3存取上月的不同兔子数
    t1 = month_1_rabbit
    t2 = month_2_rabbit
    t3 = month_3_rabbit
    month_1_rabbit = month_elder_rabbit + month_3_rabbit
    month_2_rabbit= t1
    month_3_rabbit = t2
    month_elder_rabbit = month_elder_rabbit + t3
    #这一块的优化
    # month_1_rabbit, month_2_rabbit, month_3_rabbit, month_elder_rabbit = month_elder_rabbit + month_3_rabbit, month_1_rabbit, month_2_rabbit, month_elder_rabbit + month_3_rabbit
    sum = (month_1_rabbit+month_2_rabbit+month_3_rabbit+month_elder_rabbit)*2
    print("第%d个月兔子总数为%d只"%(i,sum))
    # print('其中1⽉兔:', month_1_rabbit)
    # print('其中2⽉兔:', month_2_rabbit)
    # print('其中3⽉兔:', month_3_rabbit)

image.png


相关文章
|
Python
python小游戏————兔子
python小游戏————兔子
127 0
python小游戏————兔子
|
Python
Python经典编程习题100例:第11例:古典兔子问题
Python经典编程习题100例:第11例:古典兔子问题
110 0
Python遇到的问题:IndentationError: expected an indented block
Python遇到的问题:IndentationError: expected an indented block
|
Python
python: not found 问题的解决
python: not found 问题的解决
782 0
|
Python
Python—Python 问题
离线安装库
145 0
|
索引 Python
Python面试中一些常见的问题及其答案
Q 1:Python 有哪些特点和优点? 作为一门编程入门语言,Python 主要有以下特点和优点: ● 可解释● 具有动态特性● 面向对象● 简明简单● 开源● 具有强大的社区支持当然,实际上 Python 的优点远不止如此,可以阅读该文档,详细了解: https://data-flair.training/blogs/python-tutorial/ Q 2:深拷贝和浅拷贝之间的区别是什么? 答:深拷贝就是将一个对象拷贝到另一个对象中,这意味着如果你对一个对象的拷贝做出改变时,不会影响原对象。
1905 0
|
Python 算法框架/工具 TensorFlow
Python热门问题及解决方法
Python热门问题及解决方法,转自阿里云开发者问答,大家有问题可以移步阿里云问答模块:https://developer.aliyun.com/ask/ Python字符串比较最小/最大strhttps://yq.
3386 0