解题思路:首先应该是找出年份见母牛数量之间的关系
成熟 1年 2年 3年 总数
1年 1 1
2年 1 1 2
3年 1 1 1 3
4年 1 1 1 1 4
5年 2 2 1 1 6
6年 3 3 2 1 9
7年 4 4 3 2 13
8年 6 6 4 3 19
关系式:今年母牛数量=去年母牛数量+大前年母牛数量
例:第五年母牛数量=第四年母牛数量+第二年母牛数量
参考代码:
#include <stdio.h>
//和斐波纳契数列有相似之处
int main()
{
int i=0,j;
int n[50],a[100];//n[10]保存输入的数据,a[30]保存各年母牛数量
a[0]=1;a[1]=2;a[2]=3;a[3]=4;
while(scanf("%d",&n[i])){//输入几个年数
if(n[i]==0)break;
++i;
}
i=0;
while(n[i]!=0)//求第n[i]年的母牛数量
{
if(n[i]<=4)//前四年年数和母牛数量一致
{
printf("%d\n",a[n[i]-1]);
}
else if(n[i]>4)//超过四年,前一年和前三年的母牛数量和 是今天的母牛数量
{
for(j=5;j<=n[i];++j)
{
a[j-1]=a[j-2]+a[j-4];
}
printf("%d\n",a[n[i]-1]);
}
++i;
}
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复