您的位置:首页 > 编程语言 > C语言/C++

C语言网 问题 1004: 母牛的故事

2017-11-02 20:14 465 查看
题目描述

有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?

输入

输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。
n=0表示输入数据的结束,不做处理。

输出

对于每个测试实例,输出在第n
4000
年的时候母牛的数量。
每个输出占一行。

样例输入

2
4
5
0


样例输出

2
4
6


提示


来源

代码:

#include<stdio.h>
int main()
{
int i,n,f[56];
while(scanf("%d",&n))
{
f[1]=1;
f[2]=2;
f[3]=3;
if(n==0)
break;
if(n==1)
printf("%d\n",f[1]);
else if(n==2)
printf("%d\n",f[2]);
else  if(n==3)
printf("%d\n",f[3]);
else
{
for(i=4; i<=n; i++)
{
f[i]=f[i-1]+f[i-3];
}
printf("%d\n",f
);
}
}

return 0;
}


解析:

年数母牛过程
111
221->1,1
331,1->1,1,1
441,1,1->1,1,1,1
561,1,1,1->1,1,1,1,1,1
其中红色标记的为第四年母牛,黑色标记的为第一年母牛,绿色标记的为第二年母牛,蓝色标记的为第三年母牛。

可从其中找到规律。即:i>=4时f[i]=f[i-1]+f[i-3]。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: