1. 程式人生 > 其它 >斐波那契數列-兔子問題

斐波那契數列-兔子問題

  題目:古典問題:有一對兔子,從出生後第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(int
k) { 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 }

執行結果如下圖所示: