C:
#include <stdio.h>
#define MAXN 1000001
#define MOD 10007
int n, i, F[MAXN];
int main()
{
scanf("%d",&n);
F[1]=1;
F[2]=1;
for(i=3; i<=n; ++i)
F[i]=(F[i-1]+F[i-2])%MOD;
printf("%d\n",F[n]);
return 0;
}
//不用数组,循环判断也可以哦~
#include <stdio.h>
int main(){int n,q = 1,h = 1,i,s = 1;
scanf("%d",&n);
if(n >= 1 && n <= 1000000){
if(n==1 && n==2){
s = 1;
}
for(i = 2;i < n;i++){
s = (q + h)%10007;
q = h;
h = s;
}
printf("%d\n",s);
}
return 0;
}
Java:
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
long f1=1,f2=1;
long result=0,sum=0;
if(n==1 || n==2)
{
result=1;
}else {
for(int i=3;i<=n;i++){
sum=f1+f2;
f2=f1;
f1=sum%10007;
}
result=sum%10007;
}
System.out.print(result);
}
}