古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子, 小兔子長到第三個月後每個月又生一對兔子 ,假如兔子都不死,問每個月的兔子總數為多少
阿新 • • 發佈:2018-12-16
思路分析:
月份 兔子數 說明
1 1(對) 從開始有一對兔子
2 1
3 1+1 原本有一對 從第三個月開始 生了一對 一共是兩對兔子
4 1+1+1 生了第二對
5 1+1+1+1+1 生了第三對兔子 同時3月生的第一對兔子又生了一對
6 5+3=8
兔子數目序列: 1 1 2 3 5 8 .。。。。。。。。。
總結出規律:前兩項之和就是第三項
所以:第n個月的兔子數目為:f(n)=f(n-1)+f(n-2)
public class Test{
public static void main(String [] args){
for(int i=1;i<=20;i++){
System.out.println("第"+i+"個月的兔子數目為:"+f(i));}
public static int f(int n){
if(x==1||x==2) return 1;
else
return f(n-1)+f(n-2);
}
}}
程式碼如下:
package P1; //古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子, //小兔子長到第三個月後每個月又生一對兔子 //,假如兔子都不死,問每個月的兔子總數為多少? public class Test { public static void main(String [] args){ for(int i=1;i<=20;i++){ System.out.println("第"+i+"個月的兔子數目為:"+Test.frubb(i)); } } public static int frubb(int n){ if(n==1||n==2) return 1; else return frubb(n-1)+frubb(n-2); } }