n=60的时候运行超时了,有什么优化的方法嘛
#include
int F(double n);
int main()
{
double n;
scanf("%lf",&n);
printf("%d",F(n));
return 0;
}
int F(double n)
{
int result;
if(n==1) result = 1;
else if(n==2) result = 1;
else result = F(n-1)+F(n-2);
return result;
}
一个问题是你这结果肯定不行,第60项int类型肯定不够用,也用double类型吧。
如果超时,建议不要用递归,用迭代吧。递归消耗比较大