死亡伯爵


私信TA

用户名:1124615130

访问量:20174

签 名:

Life is not what we have gained but what we have done.

等  级
排  名 885
经  验 3544
参赛次数 1
文章发表 33
年  龄 19
在职情况 学生
学  校 XiDianUniversity
专  业 ComputerScience

  自我简介:

解题思路:

其实很简单,假设4个变量,adult表示成年母牛(能生小牛的母牛),one,two,three,分别表示1,2,3岁的母牛,

一年后,成年母牛的数量等于原本的数量加上3岁牛的数量,而3岁等于去年2岁,2岁等于去年1岁,一岁等于成年母牛的总数,循环一下就行了。



注意事项:
记得计算第二组数据的时候要初始化。

别复制粘贴我的参考代码,因为粘贴过去全在一行




参考代码:#include<stdio.h>

int main(){

int adult,one,two,three,all,i,n;

while(scanf("%d",n)!=EOF){

if(n==0)

break;//n=0的时候结束程序

for(adult=1,one=0,two=0,three=0,i=0;i<n-1;i++){//别忘了初始化

adult+=three;

three=two;

two=one;

one=adult;

}

all=adult+three+two+one;

printf("%d\n",all);

}

return 0;

}

 

0.0分

16 人评分

  评论区

你这个错误一堆根本跑不了,而且还缺少了一个用来暂存one的中间变量
2019-09-14 00:52:46
你这个很复杂啊,可以考虑直接用斐波那契数列
因为小牛要隔3年才能生育,所以第n年的牛应该为n-1年的头数加上n-3年的头数;但是前4年就只有一头母牛能生,所以单独列出来。
运用递归函数
关键代码为:
feat(n){
if(n<4) {
return n;
}
else{
return feat(n-1)  +feat(n-3) ;
}
}
2019-09-03 22:59:37
2019-08-23 17:54:19
666
2019-08-05 17:32:30
哥 你怎么这么秀
2019-08-03 10:02:52
可以,受教了!!
2019-03-20 21:30:26
同是九年义务教育,为何你如此之秀
2019-03-06 14:16:30
巧了,我也是一样的思路
2019-02-23 10:19:32