根据题意,先列出前几年的牛头数,试着找找规律:
第n年: | n=1 | n=2 | n=3 | n=4 | n=5 | n=6 | n=7 | n=8 | n=9 |
fn头牛? | f1=1 | f2=2 | f3=3 | f4=4 | f5=6 | f6=9 | f7=13 | f8=19 | f9=28 |
fn=fn-1+fn-3
#include <stdio.h>
int main()
{
int n,i;
int f1,f2,f3,fn;
while(~scanf("%d",&n)&&n!=0)
{
f1=1;
f2=2;
f3=3;
if(n==1)
printf("%d\n",f1);
else if(n==2)
printf("%d\n",f2);
else if(n==3)
printf("%d\n",f3);
else
{
for(i=4; i<=n; i++)
{
fn=f3+f1;
f1=f2; //f1代表前3年
f2=f3; //f2代表前2年
f3=fn; //f3代表前1年
}
printf("%d\n",fn);
}
}
return 0;
}