热身赛的第二题,求斐波那契数列第N项对10007取余的余数。
提示,直接求余数,不用求出相应的斐波那契数,采用迭代提高效率,而非递归。
#include<stdio.h>
int Fib(int n){
int next;
int previous=1;
int result=1;
while(n>2){
n-=1;
next=previous%10007;
previous=result%10007;
result=(next+previous)%10007;
}
return result;
}
int main(){
int n;
scanf("%d",&n);
printf("%d\n",Fib(n));
return 0;
}