母牛的故事
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 73646 Accepted Submission(s): 36611
n=0表示输入数据的结束,不做处理。
每个输出占一行。
2 4 5 0
2 46
#include<iostream> using namespace std; int main() { int n; while(cin>>n,n) { int a[100]={1,1,1,1,2}; long long b,c,d=0; for(b=5;b<100;b++) a[b]=a[b-2]+a[b-3]+a[b-4]; for(c=0;c<n;c++) { d+=a[c]; } cout<<d<<endl; } return 0; }
分析 给出一个数组 是每一年小牛增长的个数 然后找规律
第N年 N=1 2 3 4 5 6 7 8 9 10 。。。。。
第N年增长个数 t[N]= 1 1 1 1 2 3 4 6 9 13 。。。。。
我们可以发现:在第6年的时候 t[6]=t[4]+t[3]+t[2];
N=7 t[7]=t[5]+t[4]+t[3];
N=8 t[8]=t[6]+t[5]+t[4];
.... .....
以此类推 就可以得出答案。