这个代码输入30就运行超时了,请问怎么改?
# include <stdio.h>
int f( int n )
{
if(n==0)
return 0;
else if(n==1||n==2)
return 1;
else
return f(n-1)+f(n-2);
}
int main ()
{
int i=1,n;
scanf("%d",&n);
while(n!=f(i))
{
i++;
}
printf("%d",i);
return 0;
}
供参考:
# include <stdio.h>
int f( int n )
{
//if(n==0)
// return 0;
//else
if(n==1||n==2)
return 1;
else
return f(n-1)+f(n-2);
}
int main ()
{
int i=1,n;
scanf("%d",&n);
//while(n!=f(i))
//{
// i++;
//}
printf("%d",f(n));//i);
return 0;
}
不好意思,忘记把题目放出来了
供参考:
# include <stdio.h>
int f(int n)
{
if (n == 1 || n == 2)
return 1;
else
return f(n - 1) + f(n - 2);
}
int main()
{
int i=1, n;
scanf("%d", &n);
while(n >= f(i))
{
i++;
}
printf("%d",i);
return 0;
}