题意:
有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
解法:
先求出每年出生的牛的数量,再把每年的数量求出来,再根据n求解
总结:
没有看出牛总数的规律(第n年牛的数量=去年牛的数量,加上第n-3年牛的数量),只能从头每年出生的牛的数量。
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
void input(){
int n,m;
int d[1000];
int ct = 1;
d[2]=d[3]=d[4]=1;
d[5] =2;
for(int i=6;i<57;i++){
d[i] = d[i-4] + d[i-2] + d[i-3];
}
int a[1000];
a[1] =1;
a[0]=1;
for(int i=2;i<57;i++){
a[i] = a[i-1] +d[i];
}
while(scanf("%d",&n)!=EOF){
if(n==0) continue;
printf("%d\n",a[n]);
}
}
int main()
{
input();
return 0;
}