原题链接:[递归]母牛的故事
解题思路:被这牛逼疯了,觉得题目有问题,第二年的时候有两只牛,可是题目说的是年初生一只小牛,算上原来的母牛不是有三只吗???只好按照题目来了。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 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复