非常經典的JAVA程式設計題(兔子規律)
阿新 • • 發佈:2019-01-03
題目:古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?
1.程式分析: 兔子的規律為數列1,1,2,3,5,8,13,21….
/** * 兔子問題 * 斐波那契數列求值 * @author Administrator *題目:古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子, *小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少? *1.程式分析: 兔子的規律為數列1,1,2,3,5,8,13,21.... */ public class rabbit { public static void main(String[] args) { MyFunction(20); } //我自己寫的方法 public static void MyFunction(int months){ int lastLastGiveBirth=0; //上上個月可生育的兔子數量 int lastGiveBirth=0; //上個月可生育的兔子數量 int count = 1; //總數量 初始化為一對兔子 for(int month = 1;month<=months;month++){ int giveBirth = lastGiveBirth+lastLastGiveBirth; if(month==3){ giveBirth = 1; } lastLastGiveBirth = lastGiveBirth; lastGiveBirth = giveBirth; count = count+giveBirth; System.out.println("第"+month+"個月的兔子對數:"+count); } } //遞迴方法實現(我認為好的方法) public static int fib(int month){ if(month == 1 || month == 2){ return 1; }else{ return fib(month-1)+fib(month-2); } } }