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