有一头母牛,它每年初生一头小母牛,每头小母牛从第四个年头起,每年年初也生一头小母牛,那么第二十年时
8个回答
展开全部
这道题感觉有一点歧义,“第二十年时”,我这里理解为“第二十年年初,母牛生产过后”进行解题。
设置两个变量
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)
设置两个变量
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年前的牛都可以再生小牛,小牛是多出来的),以此类推.这道题是计算机语言中常考的一道题,楼主慢慢算吧,不懂追问
第一年 第二年 第三年
2 3 4
第四年 第五年 第六年
6 9 13
19 28 41
第一年牛会生一头小牛,所以第一年结束时有2头,第二年结束时有3头,第三年结束时有4头,这没有问题吧
第四年起,第一年的小牛可以再生小牛,所以为6,第五年时,第二年的小牛也可以再生小牛,所以为9,第六年时,第三年的小牛也可以再生小牛,规律是:当年的牛的数量等于三年前的牛的数量加前一年的牛的数量(因为3年前的牛都可以再生小牛,小牛是多出来的),以此类推.这道题是计算机语言中常考的一道题,楼主慢慢算吧,不懂追问
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
解释还是很简单的,先明确f(n)的含义,第n年有的牛数
第一个公式,不用多说,第零年(开始),第一年,第二年,第三年,都只有1头牛
第四年后,牛的数量由两部分构成,去年的所有牛和所生下的小牛组成,前者就是f(n-1),应该没有异义;由于不是所有牛都能生小牛,只有3牛以前的老牛才会生小牛,而每只老牛只生一只小牛,第n年所生牛的数量就应该是f(n-3)
第一个公式,不用多说,第零年(开始),第一年,第二年,第三年,都只有1头牛
第四年后,牛的数量由两部分构成,去年的所有牛和所生下的小牛组成,前者就是f(n-1),应该没有异义;由于不是所有牛都能生小牛,只有3牛以前的老牛才会生小牛,而每只老牛只生一只小牛,第n年所生牛的数量就应该是f(n-3)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该有1873头牛了。不信请看程序:(运行一下就知道咯,第多少年后就输入多少,如这里是20)
#include<stdio.h>
int f(int n);
int main()
{
int n;
while(scanf("%d",&n)!=EOF&&n!=0)
{
printf("%d\n",f(n));
}
return 0;
}
int f(int n)
{
if(n==1) return 1;
else if(n==2) return 2;
else if(n==3) return 3;
else if(n==4) return 4;
else return f(n-1)+f(n-3);
}
#include<stdio.h>
int f(int n);
int main()
{
int n;
while(scanf("%d",&n)!=EOF&&n!=0)
{
printf("%d\n",f(n));
}
return 0;
}
int f(int n)
{
if(n==1) return 1;
else if(n==2) return 2;
else if(n==3) return 3;
else if(n==4) return 4;
else return f(n-1)+f(n-3);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1+1+2+3+4+5+6=22头
所以20年后有22头
所以20年后有22头
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询