比较基础的一道题,可用循环或者递归,以下是我以前用的三种方式写的
1.循环
//数组
<pre name="code" class="java">public static int FibonacciByCycle1(int indexNum){
int[] Fibonacci=new int[indexNum];
if(indexNum<=2){
return 1;
}
else{
Fibonacci[0]=1;
Fibonacci[1]=1;
for(int i=2;i<indexNum;i++){
Fibonacci[i]=(Fibonacci[i-1]+Fibonacci[i-2])%10007;
}
return Fibonacci[indexNum-1];
}
}
//用变量
public static int FibonacciByCycle(int indexNum){
int FibonacciFrontOne=1;
int FibonacciFrontTwo=1;
int FibonacciCenter=1;
for(int i=2;i<indexNum;i++){
FibonacciCenter=FibonacciFrontOne+FibonacciFrontTwo;
if(FibonacciCenter>=10007){
FibonacciCenter=FibonacciCenter%10007;
}
Fi