小兔子3个月之后生小兔子的问题

来源:互联网 发布:现在淘宝卖什么最火 编辑:程序博客网 时间:2024/04/27 19:18

 //有一对小兔子,从第三个月起开始每一个月生下一对小兔
  //小兔从第三个月起每个月也会生下一对小兔,假设兔子都
  //不会死亡,那么求每个月的兔子的个数
  //如果一个月一个月的把兔子的个数写出来的话,会发现如下规律
  //1  1
  //2  1
  //3  2
  //4  3
  //5  5
  //由上面可以发现,从第三个月起,每个月的兔子对数是前两个月兔子对数的和
  //所以可以使用两个变量m1,m2代表前两个月兔子的对数,然后求出当前月兔子的对数
  //但是需要注意的是要求的月数是不确定的,所以需要使用循环来实现,因为有这样的
  //规律那么就需要有tmp来暂时的存储当前的第二个月的兔子个数,因为下一次循环中它
  //将会是作为前两个月的第一个月来使用的,而直接把m2当做要求的那个月的值则不用再
  //记录当前的那个月的值了
  
  int m1=1,m2=1,tmp,month=24,current=0;
  for(int i=0;i<month;i++) {
   //记录下来m2赋值给m1,为下一次的循环做铺垫
   tmp = m2;
   //记录下来当前月的个数
   current = m1+m2;
   m1 = tmp;
   //把当前月的数值赋值给m2
   m2 = current;
   System.out.println("第"+i+"月:"+current);
  }
  //如果这道题变成了从第二个月开始就生下一对新的话,那么就变成2的(n-1)次方了。
  //总之这种题就是先从最开始的几个里面找规律,然后通过程序把规律给展现出来就是了。

当然如果熟练了就直接把

current = m1+m2;

  m2 = current;
直接的写成:m2 = m1 + m2;

原创粉丝点击