您好,登錄后才能下訂單哦!
這篇文章主要介紹“Java怎么解決經典的兔子問題”,在日常操作中,相信很多人在Java怎么解決經典的兔子問題問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java怎么解決經典的兔子問題”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
題目內容:
現在有一對小兔子,它們需要三個月的時間才能長成大兔子,同時還會產下一對小兔子。假設兔子們都不會死,那么請問,在三年后,一共會有多少只兔子呢?
題目分析:
許多小伙伴看到這樣的題目,估計已經開始暈頭轉向了。不用著急,接下來我們先慢慢分析一下這個問題,找到問題里面所在的規律。
第1個月 1 0 0 1對兔子 2只兔子
第2個月 0 1 0 1對兔子 2只兔子
第3個月 1 0 1 2對兔子 4只兔子
第4個月 1 1 1 3對兔子 6只兔子
第5個月 2 1 2 5對兔子 10只兔子
第6個月 3 2 3 8對兔子 16只兔子
第7個月 5 3 5 13對兔子 26只兔子
第8個月 8 5 8 21對兔子 42只兔子
……
看到這里,不知道小伙伴們有沒有發現里面規律?
從第三個月開始,兔子的總對數是前面兩個月的總和。
3月 1月的數量+2月的數量 1+1 2
4月 2月的數量+3月的數量 1+2 3
5月 3月的數量+4月的數量 2+3 5
可以得到這樣一個數學公式 sum = n(x-1)+n(x-2)[x>2];
題目要求是三年后,一共有多只兔子。因此,先聲明一個36位的數組,用來遍歷。
因為第一個月和第二個月都只有一對兩只,因此加入判斷,如果是第一個月或者第二個月,那么加入相應位置的數值是1.
繼續判斷第三個月后,開始進行前兩個月的累加。具體代碼如下:
public class Demo01 {
/**
* 經典兔子問題
* 遞歸 斐波那契數列
* */
public static void main(String[] args) {
int i;
int[] arr=new int[36];
for(i=0;i<arr.length;i++){
if(i==0 || i==1){
arr[i] = 1;
System.out.println("第"+(i+1)+"個月有"+2*arr[i]+"只兔子");
}else{
arr[i] = arr[i-1] + arr[i-2];
System.out.println("第"+(i+1)+"個月有"+2*arr[i]+"只兔子");
}
}
}
}
到此,關于“Java怎么解決經典的兔子問題”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。