这道题感觉有一点歧义,“第二十年时”,我这里理解为“第二十年年初,母牛生产过后”进行解题。
设置两个变量
cow =》可以生产的母牛
little_cow[] =》小母牛
1:每年年初,新增小母牛等于可以生产的母牛
2:当小母牛长到4岁,升级为大母牛,并在该年年初可以生产
用python编写代码如下:
#!/usr/bin/Python
cow = 1
little_cow = []
for i in range(1,20+1): //20年
if len(little_cow):
for j in range(0,len(little_cow)):
little_cow[j] = little_cow[j]+1 //小母牛每年长一岁
if little_cow[j] == 4: //当小母牛4岁时,升级成大母牛
cow = cow + 1
new_little_cow = cow //这三句是把年初新产的牛加入数组
for n in range(0,new_little_cow):
little_cow.append(1)
all_cow = cow //计算总牛数
for i in little_cow: //总牛数=可以生产的母牛+小于4岁的小母牛
if i <4:
all_cow = all_cow +1
print("The nume of cows:",all_cow)
排出前几年牛的情况
第一年 第二年 第三年
2 3 4
第四年 第五年 第六年
6 9 13
19 28 41
第一年牛会生一头小牛,所以第一年结束时有2头,第二年结束时有3头,第三年结束时有4头,这没有问题吧
第四年起,第一年的小牛可以再生小牛,所以为6,第五年时,第二年的小牛也可以再生小牛,所以为9,第六年时,第三年的小牛也可以再生小牛,规律是:当年的牛的数量等于三年前的牛的数量加前一年的牛的数量(因为3年前的牛都可以再生小牛,小牛是多出来的),以此类推.这道题是计算机语言中常考的一道题,楼主慢慢算吧,不懂追问