Problem Description 有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛? Input 输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。 n=0表示输入数据的结束,不做处理。 Output 对于每个测试实例,输出在第n年的时候母牛的数量。 每个输出占一行。 2015.3.23更新,已经理解。但不建议这样去做,尽量找规律 #include "stdio.h" int main() { int n,a[55]; int sum,add,i,temp; while(scanf("%d",&n),n) { sum=0;add=0;//sum是总母牛数,add是小牛长大成母牛的数量 for(i=0;i<n;i++) { a[i]=1+add;//每年1+add只母牛产一只小牛 if(i>=4) { a[i]+=a[i-3];add+=a[i-3]; //第4年开始,a[i-3]只小母牛长大加入add行列,生出a[i-3]只小母牛加入a[i]行列。 } sum+=a[i]; } printf("%d\n",sum); } } #include "stdio.h" int main() { int a[55]; int n; a[0]=1,a[1]=2,a[2]=3; for(int i=3;i<55;i++) a[i]=a[i-1]+a[i-3]; //这里的a[i-1]指的是母牛,a[i-3]指的是小母牛。 while(scanf("%d",&n)!=EOF) { if(!n) break; printf("%d\n",a[n-1]); } }