解题思路:首先应该是找出年份见母牛数量之间的关系
成熟 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语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:517 |
C语言训练-计算1~N之间所有奇数之和 (C语言代码)浏览:655 |
哥德巴赫曾猜测 (C语言代码)浏览:1019 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:602 |
WU-整除问题 (C++代码)浏览:612 |
最小公倍数 (C语言代码)浏览:1029 |
A+B for Input-Output Practice (VI) (C语言代码)浏览:558 |
C二级辅导-进制转换 (C语言代码)浏览:663 |
C二级辅导-分段函数 (C语言代码)浏览:763 |
孤独的骑士 (C语言代码)浏览:1372 |