《斐波那契数列算法》————题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

mac2024-04-01  37

【分析】 月份: 1        2        3            4            5        6        7         8... 对数: 1        1        2            3            5        8         13          21...                             1+1         1+2        2+3   3+5        


【代码】 

版本一】直接在main方法中写

class Test01 { public static void main(String[] args) { int num1 = 1,num2 = 1; int month = 8;//定义结束的月份 int num; for(int i=1;i<=month;i++){ if(i<=2){ System.out.println("第"+i+"个月的兔子总对数是:1对"); }else{ //先把第month-1个月的对数赋值给中间变量num1,此时的num1已不用 num = num2; //第month个月的总对数=month-1个月的总对数+month-2个月的总对数 num2 = num1+num2; //再把第本次的mont-1个月的对数赋值给下一次循环的第month-2个月的对数 num1 = num; System.out.println("第"+i+"个月的兔子总对数是:"+num2+"对"); } } } }

版本二】定义并调用方法

class Test01 { public static void main(String[] args) { int month = 24; for(int i=1;i<=month;i++){ //调用方法 int num = clacRabbitNum(i); System.out.println("第"+i+"个月的兔子总对数是:"+num+"对"); } } //定义方法 public static int clacRabbitNum(int month){ if(month==1||month==2){ return 1; }else{ return clacRabbitNum(month-1)+clacRabbitNum(month-2); } } }

输出结果】

最新回复(0)