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