天天看點

算法合集(2)——斐波那契數列

前言

斐波那契數列的名聲很大,數學上出名,很多面試題筆試都喜歡考一下子。

作為算法第二節,斐波那契必須擁有姓名

我想肯定有很多人想:為啥斐波那契數列這麼出名,确實他是一個神奇的數列,确實很有規律。可是學它有什麼用呢,欸,還别說,真有,一方面,斐波那契數其實是自然的産物,花瓣的數量,樹枝分叉,向日葵的紋路,一些植物的生長,都和斐波那契數列彌補相關;另一方面,斐波那契數列和黃金比例密不可分,數列中,前一個數除以後一個數,無限接近于0.618(如圖)

算法合集(2)——斐波那契數列

一、原理

斐波那契數列,又稱“兔子數列”,和黃金比例密不可分,下面這個圖是不是很像螺

算法合集(2)——斐波那契數列

斐波那契數列指的是這樣一個數列:1,1,2,3,5,8,13,21,34,55,89…

這個數列從第3項開始,每一項都等于前兩項之和。

二、兔子題目

三、如何用代碼實作斐波那契數列

這裡學習緻謝

1)用遞歸實作

(2)用循環實作

public class Fibonacci {
    public static void main(String[] args) {
        //1.定義三個變量,用來存放第一個第二第三個斐波那契數
        int a1=1;
        int a2=1;
        int a3;
        System.out.println("斐波那契數列前十個是:");
        System.out.print(a1+","+a2);
        for (int i=3;i<=10;i++){
            //2.根據前兩個數算出第三個數
            a3=a2+a1;
            //3.更新第一個第二個數
            a1=a2;
            a2=a3;
            System.out.print(","+a3);
        }
    }
}      
算法合集(2)——斐波那契數列
package SuanFa;

import java.util.Arrays;

public class Fibonacci {
    public static void main(String[] args) {
        //建立一個用來裝斐波那契數列的數組,假設隻獲得前十個數
        int[] arr = new int[10];
        arr[0]=1;
        arr[1]=1;
        //循環獲得剩下的斐波那契數
        for (int i=2;i<arr.length;i++){
            arr[i]=arr[i-1]+arr[i-2];
        }
        //輸出這十個數
        String s = Arrays.toString(arr);
        System.out.println("前十個斐波那契數是"+s);
    }
}