题目描述:
有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
解题思路:
第N年母牛的数量由两部分组成,前一年的母牛,以及新生的母牛,而新生的母牛数等于三年前的母牛数(因为小母牛第四年才开始生小牛)。
故关系式为a[n]=a[n-1]+a[n-3]
解题细节:
本题重点在于输入输出的特殊性,本题为输入一组数据后,一起输出结果,而非输入一个数后,接着输出结果。
代码:
#include<iostream>
#include<cmath>
using namespace std;
void num(int a[56])
{int i;
for (i=1;i<=4;i++)
a[i]=i;
for (i=4;i<=55;i++)
a[i]=a[i-1]+a[i-3];
}
int main()
{
int e=1,i,j,n,m,f=1,h=0,x,y=0,a[56],b[10000];
num(a);
while (cin>>n)
{ if (n!=0)
{
b[h]=a[n];
h++;
}
if (n==0)
{for (i=0;i<h;i++)
cout<<b[i]<<endl;
}
}
}
#include<cmath>
using namespace std;
void num(int a[56])
{int i;
for (i=1;i<=4;i++)
a[i]=i;
for (i=4;i<=55;i++)
a[i]=a[i-1]+a[i-3];
}
int main()
{
int e=1,i,j,n,m,f=1,h=0,x,y=0,a[56],b[10000];
num(a);
while (cin>>n)
{ if (n!=0)
{
b[h]=a[n];
h++;
}
if (n==0)
{for (i=0;i<h;i++)
cout<<b[i]<<endl;
}
}
}