这道题第一次交的时候没有申清题意做错了,新出生的小母牛过了三年也就是第四年初从这以后每年年初都能生一头小母牛。
分析:要先搞明白一头小母牛出生那年算起过几年?可以具有生育能力(根据题意三年)例:第二年出生的牛会再第五年生出一头牛从此之后每年年初生出一头牛
题的理解:从第一年到第四年只有原来那个母牛有生育能力,所以从第二年到第四年每年出生一头小母牛,到第五年该出生两个头 小母牛,因为第二年出生的那头小母牛具有了生育能力,它到第五年会生出一头小母牛,第五年就会出生两头牛,也就 是到了第五年有两头可以生育的牛(第二年母牛的数量)。再解释第六年,会出生三头小母牛,是因为第三年那头小母 牛具有了生育能力,所以到了第六年有三头可以生育的母牛(第三年母牛的数量)。
总结: 第 i 年母牛的数量如何求? 就是第 i-1 年母牛的数量+第 i 年出生牛的数量(第i年出生牛的数量等于啥?(就是第 i 年具 有生育能力的牛的数量?(就是第 i-3 年母牛的数量 )))
从第四年起,往后每年母牛的数量=前一年母牛的数量+前三年母牛的数量 :a[i]=a[i-1]+a[i-3]
#include<iostream>
using namespace std;
int a[60]={0,1,2,3,4};//下标表示年份,元素的值表示这年母牛的数量。
int num(int x)
{
if(x<=4) return x;
else
{
for(int i=5;i<=x;i++) a[i]=a[i-1]+a[i-3];
return a[x];
}
}
int main()
{
int n;
while(scanf("%d",&n)&&n)
{
cout<<num(n)<<endl;
}
return 0;
}
0.0分
3 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复