【程式1】 TestRabbit.java 題目:古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子, //假如兔子都不死,問每個月的兔子總數為多少?
阿新 • • 發佈:2019-02-13
//【程式1】 TestRabbit.java 題目:古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子, //假如兔子都不死,問每個月的兔子總數為多少? 1.程式分析: 兔子的規律為數列1,1,2,3,5,8,13,21....(又稱斐波那契數列或黃金分割數列) //問題你要保證每次生的兔子都是一個雌一個雄,而且只能使他們一塊出生的才能交配。 //間隔不同的月份兔子規律也不一樣,如從第2個月起每個月都生一對兔子,則規律為:1,2,4,8,....; //如從第4個月起每個月都生一對兔子,則規律為1,1,1,2,3,4,6,9,13..........; public class TestRabbitApp { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub TestRabbit tr=new TestRabbit(); tr.printCount2(20);//遞迴方法 //tr.printCount(20);//賦值方法 } } class TestRabbit{ int a1,a2; TestRabbit(){ a1=1;a2=1; } public void printCount(int month){ int i=1,sum=0;int t; for(;i<=month;i++){ if(i==1||i==2) sum=1; else sum=a1+a2; System.out.println("第"+i+"個月時兔子總數為: "+sum+"對"); if(i>2){ t=a2; a2=a1+a2; a1=t; } } } public int fun(int month){ if(month==1||month==2) return 1; else return fun(month-1)+fun(month-2); } public void printCount2(int month){ for(int i=1;i<=month;i++){ System.out.println("第"+month+"月時,兔子總數為: "+fun(i)+"對"); } } }