深入理解遞歸算法之斐波那契數列(兔子數列)

問題描述:

斐波那契數列(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*)
找到遞歸的遞推公式後,使用代碼是實現就比較好理解了

import java.util.*;
public class Rabbit {

    public static void main(String[] args){
        System.out.println("請輸入一個整數來表示你希望計算的月份:");
        Scanner scan= new Scanner(System.in);
        int i=scan.nextInt();
        int s=calc(i);
        System.out.printf("%d個月份後兔子的數量爲:%d",i,s);



    }
    public static int calc(int n){
        if(n==1||n==2){
            return 1;
        }
        else{
            return calc(n-1)+calc(n-2);
        }

    }



}

二:使用遞歸的思想實現計算一個數字的階乘

import java.util.*;
public class RecursiveFactorial {
    public static void main(String[] args){
        System.out.println("請輸入您想計算的階乘的整數n:");
        Scanner scan = new Scanner(System.in);
        if(scan.hasNextInt()){
            int n=scan.nextInt();
            System.out.printf("您輸入的數字是:%d\n",n);
            int result=calc_Factorial(n);
            System.out.printf("%d的階乘爲:%d",n,result);
        }
        else{
            System.out.println("輸入不合法,請重新輸入");
        }

    }
    public static int calc_Factorial(int n){
        if(n==1){
            return 1;
        }
        else{
            return n*calc_Factorial(n-1);
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章