解题思路:被这牛逼疯了,觉得题目有问题,第二年的时候有两只牛,可是题目说的是年初生一只小牛,算上原来的母牛不是有三只吗???只好按照题目来了。f(0)=0;f(1)=1;f(2)=2;f(3)=3;f(4)=4;f(5)=6;我们设想要是只有最开始的母牛生小牛f(5)就是等于5吧,可是f(2)中的那只小牛成熟辣,就又生了一只小牛。

所以我们把最开始的母牛和没有成熟的小牛晾在一边,等于f(4),那么f(2)中的小牛生了一头小小牛,值恰好了f(2)相等,即我们可以把它看成了最开始的那头母牛,由它来生小牛。易得f(i)=f(i-1)+f(i-3)
注意事项:

参考代码:
#include<stdio.h>
main()
{
int f[57]={1,1,2,3},n,i;
for(i = 4;i < 57;i++)
{
f[i]=f[i-1]+f[i-3];
}
while(scanf("%d",&n)!=EOF&&n!=0)
{
printf("%d\n",f[n]);
}
}

点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论