//第一个程序,运行超时
#include<stdio.h>
int Fibonacci(int n)
{
return (n==1||n==2)?1:Fibonacci(n-1)+Fibonacci(n-2);
}
int main()
{
int n;
scanf("%d",&n);
printf("%d\n",Fibonacci(n)%10007);
return 0;
}
//正确代码
#include<stdio.h>
#define MOD 10007 //定义除数
int main()
{
//数组定义大一点,防止数组越界
//定义动态数组太大,DEV—C++没法编译通过,可以先用较小的值运行,提交的时候再改回来
int n,i,Fibonacci[1000001];
while(scanf("%d",&n)!=EOF)
{
Fibonacci[1]=Fibonacci[2]=1;
for(i=3;i<=n;i++)
Fibonacci[i]=(Fibonacci[i-1]+Fibonacci[i-2])%MOD;
printf("%d\n",Fibonacci[n]);
}
return 0;
}
蓝桥杯 入门训练 Fibonacci数列
最新推荐文章于 2020-01-28 19:49:02 发布