欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

用python解决养兔子趣味问题

时间:2023-08-13
 个人简介

 作者简介:大家好,我是阿牛 个人主页:馆主阿牛 支持我:点赞+收藏⭐️+留言 系列专栏:python基础案例100题格言:迄今所有人生都大写着失败,但不妨碍我继续向前!



目录

 个人简介 前言

题目分析代码运行结果 结语 前言

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

题目

有⼀对兔⼦,从出⽣后第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 = 1month_2_rabbit = 0month_3_rabbit = 0month_elder_rabbit = 0sum = 0for 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)

运行结果


可以看到结果和分析中的手稿结果一样!

结语

这道题很有趣,各位如果有其它想法可在评论区打出来交流哦!!!
上期看这里:python基础案例10题(一)

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。