用python解决养兔子趣味问题

举报
馆主阿牛 发表于 2022/03/22 01:25:24 2022/03/22
【摘要】 今天看到了一个很有趣的养兔子问题,决定尝试一下,各位大佬如果有其他思路,欢迎交流,在评论区写下你的想法哦!

📋 个人简介

  • 💖 作者简介:大家好,我是阿牛😜
  • 💬格言:迄今所有人生都大写着失败,但不妨碍我继续向前!🔥

请添加图片描述

🍎前言

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

🍊题目

有⼀对兔⼦,从出⽣后第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(上一个月的三月兔)

为了更清楚的表示,请看图:
请添加图片描述
是不是一下子看起来很清楚了,嘿嘿嘿!!!
注:图中数字是兔子对数。
同时为了简化问题,我们的兔子用对表示,最终个数用对数乘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)

🍊运行结果

在这里插入图片描述
可以看到结果和分析中的手稿结果一样!

🍎结语

这道题很有趣,各位如果有其它想法可在评论区打出来交流哦!!!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。