java筆試攻略——進階階段(斐波那契數列求和)

斐波那契數列(Fibonacci sequence),又稱黃金分割數列、因數學家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖爲例子而引入,故又稱爲“兔子數列”,指的是這樣一個數列:1、1、2、3、5、8、13、21、34、……在數學上,斐波那契數列以如下被以遞推的方法定義:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)
斐波那契數列求和是經典的一道算法題,一下我們以求斐波那契數列的前20項的和爲例子。
方法1

public class Demo1 {  
    // 定義三個變量方法  
    public static void main(String[] args) {  
        int a = 1, b = 1, c = 0;  
        System.out.println("斐波那契數列前20項爲:");  
        System.out.print(a + "\t" + b + "\t");  
        //因爲前面還有兩個1、1 所以i<=18  
        for (int i = 1; i <= 18; i++) {  
            c = a + b;  
            a = b;  
            b = c;  
            System.out.print(c + "\t");  
            if ((i + 2) % 5 == 0)  
                System.out.println();  
        }  
    }  
  
}  

方式2

public class Demo3 {  
    // 使用遞歸方法  
    private static int getFibo(int i) {  
        if (i == 1 || i == 2)  
            return 1;  
        else  
            return getFibo(i - 1) + getFibo(i - 2);  
    }  
  
    public static void main(String[] args) {  
        System.out.println("斐波那契數列的前20項爲:");  
        for (int j = 1; j <= 20; j++) {  
            System.out.print(getFibo(j) + "\t");  
            if (j % 5 == 0)  
                System.out.println();  
        }  
    }  
  
}  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章