斐波那契數列-兔子問題
阿新 • • 發佈:2021-11-12
題目:古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子對數為多少?
程式分析:兔子的規律為數列1,1,2,3,5,8,13,21...
我們可以發現從第三個月開始,本月兔子對數等於前兩個月兔子對數之和,所以,我們可以採用遞迴函式來實現程式。使用遞迴函式時,我們要注意函 數中必須有遞迴停止條件。
題目程式碼如下:
1 package eg1; 2 import java.util.Scanner; 3 public class eg1 { 4 public static int Num(intk) { 5 if(k==1 || k==2) { 6 return 1; 7 }else { 8 return Num(k-2)+Num(k-1); 9 } 10 } 11 public static void main(String[] args) { 12 // TODO 自動生成的方法存根 13 Scanner sc=new Scanner(System.in); 14 System.out.println("請輸入月數:");15 int yue=sc.nextInt(); 16 if(yue>=0) { 17 System.out.println(yue+"個月後兔子對數為:"); 18 System.out.print(Num(yue)+"對"); 19 }else { 20 System.out.println("輸入月份錯誤!"); 21 } 22 } 23 24 }
執行結果如下圖所示: