刚学呀不会呀,头秃脑壳疼

程序设计: 一个数列的头三个数是0,0,1,第四个数是前三个数之和,以后每个都是前三个数之和,问当该数列中的某个数值达到n时(n有键盘输入),它是该数列的第几项?

int a=0,b=0,c=1,d=0,i=3,n=0;
scanf("%d",&n);
while(c<n)
{
d=a+b+c;
a=b;
b=c;
c=d;
i++;
}
printf("%d",i);