問題描述:
斐波那契數列(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); } } }