java程式設計題之斐波那契數列
阿新 • • 發佈:2018-12-12
- 下邊的分析是通過Excel表格做出來的,因為不知道它具體生產的情況,所以就一個月一個月的試,最後得到下列的情況
/**
* 古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,
* 小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,
* 問每個月的兔子總對數為多少?
* 第一月 :(1)1
* 第二月 :(1)1
* 第三月 :(2)1+1
* 第四月 :(3)1+1+1
* 第五月 :(5)1+1+1+1+1
* 第六月 :(8)1+1+1+1+1+1+1+1
* 第七月 :(13)1+1+1+1+1+1+1+1+1+1+1+1+1
* 第八月 :(21)1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1
* 第九月 :(34)1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1
* 第十月 :(55)1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1
*第十一月:(89)1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1
*第十二月:(144)1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1
*
*根據上邊的分析,很明顯,
*當前月的兔子總對數=前兩個月兔子對數和
*
*第三月:1+1=2
*第四月:1+2=3
*第五月:2+3=5
*第六月:3+5=8
*第七月:5+8=13
*第八月:8+13=21
*第九月:13+21=34
*第十月:21+34=55
*
*/
public static void rabbit(){
int month = 0;
Scanner in = null;
try{
month = getMonth(in,month,"請輸入你飼養兔子的月份:");
if(month<1){
month = getMonth(in,month,"月份不能小於1個月,請重新輸入飼養兔子的月份:");
}
}catch(Exception e){
month = getMonth(in,month,"你輸入的月份不合法,請重新輸入飼養兔子的月份:" );
}
long [] rb= new long[month];
for(int i=0;i<month;i++){
if(i<2){
/**
* 給第一月,第二月賦預設值為1,因為前兩個月沒有兔子出生
*/
rb[i]=1;
}else{
/**
* 從第三月開始,每月的兔子總對數=前兩個月兔子對數的和
*/
rb[i]=rb[i-2]+rb[i-1];
}
printObj("第"+(i+1)+"月的兔子總對數:"+rb[i]);
}
}