题目:有一头母牛从第二年开始每年年初生一个小牛,小牛从第四年开始每年生一头小牛,n年以后有多少头牛。
解题思路:理清思路,列出前几年牛的个数,然后找出其中的规律,前三年的时候只有一头母牛能生小牛可以将前3年的单列出来,然后从第四年开始利用递推来算第n年牛的数量。
细节处理:建立一个数组a【100】利用递推来求出牛的数量,然后用c【100】来存a【i】的值便于一起输出。
代码:#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,i,j=0,c[100]={0},a[100]={1,1,2,3};
while(cin>>n)
{
if(n==0)
break;
if(n<4)
c[j]=a[n];
if(n>=4)
{for(i=4;i<=n;i++)
a[i]=a[i-1]+a[i-3];
c[j]=a[i-1];}
j++;
}
for(i=0;i<j;i++)
cout<<c[i]<<endl;
return 0;
}
感想:刚开始做的时候由于没有理清之间的关系,想了好久也没做对,后来发现列的时候写错了,在草纸上写的时候应该把小牛的年龄写上便于统计。