#include<stdio.h>
int main()
{
int n,f1=1,f2=1,f3=1,s=0;
scanf("%d",&n);
if(n>=1&&n<=1000000)
for(s=3;s<=n;s++)
{
f3=(f1+f2)%10007;
f1=f2;
f2=f3;
}
printf("%d",f3);
return 0;
}
这个故事告诉我们能不递归就不要递归 递归超时
#include <iostream>
using namespace std;
int fun(int n)
{
long long m;
if(n==1||n==2)
m=1;
else
{
m=fun(n-1)+fun(n-2);
}
return m;
}
int main()
{
int n;
cin>>n;
int x=fun(n);
cout<<x%1007;
return 0;
}