藍橋杯入門訓練 Fibonacci數列
阿新 • • 發佈:2021-01-18
藍橋杯 入門訓練 Fibonacci數列
問題描述
Fibonacci數列的遞推公式為:Fn=Fn-1+Fn-2,其中F1=F2=1。
當n比較大時,Fn也非常大,現在我們想知道,Fn除以10007的餘數是多少。
1 <= n <= 1,000,000。
解決方案
import java.util.Scanner;
public class Fibonacci {
public static void main(String[] args) {
Scanner s=new Scanner(System.in); //獲取鍵盤輸入
int n=s.nextInt ();//接收字串
int[] arr=new int[n];
if(n>=1&&n<=1000000) {
if(n==1||n==2) {
arr[n-1]=1;
}
else {
arr[0]=1;
arr[1]=1;
for(int i=2;i<n;i++)
arr[i]=(arr[i-1]+arr[i-2])%10007;
}
}
System.out.println(arr[n-1]);
}
}
出現的問題
程式碼提交的時候,會出現編譯錯誤,顯示
Main.java:3: 錯誤: 類Fibonacci是公共的, 應在名為 Fibonacci.java 的檔案中宣告 public class Fibonacci { ^ 1 個錯誤
此時只需要將原始碼裡的public class Fibonacci改為public class Main即可解決