老问题新解法——经典的大兔子生小兔子问题(斐波那契数列)
程序分析: 兔子的規律為數列1,1,2,3,5,8,13,21....
解決方案1:
? ? ? ? 思想方法:某月的兔子數量即為上個月的兔子數量+上個月出生的兔子數量,而出生的兔子數量即上個月的大兔子數量,也即上上月的兔子數量(上上月的兔子到了上個月一定會成為大兔子,一定會生兔子寶寶)。所以很明顯兔子數量為斐波那契數列,下面只需要用代碼計算斐波那契數列即可。
? ? ? ?核心代碼:
public static int recurse(int month){
? ? if(month==1||month==2)
? ? temp=1;
? ? if(month>2)
? ? temp=recurse(month-1)+recurse(month-2);
? ? ? ?//System.out.println("temp="+temp);
? ? return temp;
? ? }
如果我們沒有數學基礎怎么辦,不會分析,不知道斐波那契數列怎么辦?沒關系,可以這樣思考
解決方案2:
? ? ? ? 思想方法:雖然不知道斐波那契數列,但是我們如果知道某個月的大兔子小兔子兩者的數量,一定可以知道下個月的大兔子小兔子數量,所以我們可以通過N次這個過程,計算出任何一個月的大小兔子數量。
? ? ? ?核心代碼:
? ? ? ?while(month>0){
? ?int temp=small;//先保存small即小兔子的數量,因為小兔子數量一會會變化
? ?small=big;
? ?big=big+temp;
? ?month--;
? ? }
總結
以上是生活随笔為你收集整理的老问题新解法——经典的大兔子生小兔子问题(斐波那契数列)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 端粒效应《The Telemere Ef
- 下一篇: C语言 —— 嵌套语句的使用