《华为机试》刷题之统计每个月兔子的总数
我不知道将去向何方,但我已在路上! |
---|
时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! |
- 题目:
有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少?
本题有多组数据。
输入描述: 输入int型表示month
输出描述: 输出兔子总数int型 - 示例:
示例 1 :
输入:9
返回值:34
while True:
try:
month = int(input())
new1,new2,new3=1,0,0
for i in range(1,month):
new3 += new2
new2 = new1
new1 = new3
print(new1+new2+new3)
except:
break
- 算法说明:
三种兔子,活到第一个月的兔子
、活到第二个月的兔子
、活到第三个月及以后的兔子
,其中前两种没有繁育能力;
每次更新,将活到第二个月的兔子
加到活到第三个月及以后的兔子
里面,更新活到第三个月及以后的兔子
;
再用活到第一个月的兔子
更新活到第二个月的兔子
;
活到第三个月及以后的兔子
可以生一个新兔子,所以用更新后的活到第三个月及以后的兔子
更新活到第一个月的兔子
;
往复循环,得到第month
月兔子的总数new1+new2+new3
。