百度百科:
斐波那契數列(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));
}
}