【分析】 月份: 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); } } }输出结果】