1. 程式人生 > 其它 >藍橋杯入門訓練 Fibonacci數列

藍橋杯入門訓練 Fibonacci數列

技術標籤:藍橋杯javajava

藍橋杯 入門訓練 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即可解決

執行結果