活死題14:計算斐波那契數列並輸出前十個數字。

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

解題思路:
因爲第一個數和第二個數固定都是1,所以可以直接聲明變量並賦值。而斐波那契額數列的規律是後面一個數是前面兩個數的和。也就是說 F(3) = F(1) + F(2)
= 1 + 1
=2
如上可以得出上面的遞推公式:F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)

方法一:


		int num1 = 1;//第一個數
		int num2 = 1;//第二個數
		System.out.print(num1 + " " + num2 + " ");//輸出第一個數和第二個數
		for(int i = 0;i < 8;i++) {
			int nextNum = num1 + num2; //下一個數
			System.out.print(nextNum + " ");
			num1 = num2;   //把第二個數賦值給第一個數
			num2 = nextNum;  //把下一個數賦值給第二個數
		}
		
	
方法二:採用遞歸算法解決該問題。

首先我們先了解一下什麼是遞歸。遞歸( recursion)就是:程序調用自身的編程技巧(也可以說:用己之矛,攻己之盾)。

 private static int function(int num) {  //聲明一個方法
    	
    	
    	if(num == 1 || num == 2) {  // 對第一個或第二個數賦值 1
    		return 1;
    	}
    	return function(num - 1) + function(num -2); // 反饋自身的方法
    }
	public static void main(String[] args) {
		for(int i = 1;i <= 10;i++) {			
			System.out.println(function(i));
		}

	}

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章