Fibonacci数列_C

#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;
}

Fibonacci数列_C  _02