题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?  
 //这是一个菲波拉契数列问题
public class lianxi01 
{
    public static void main(String[] args) 
   {
      System.out.println("第1个月的兔子对数:    1");
      System.out.println("第2个月的兔子对数:    1");
      int f1 = 1, f2 = 1, f, M=24;     
  
      for(int i=3; i<=M; i++) 
      {   
           f = f2;   
           f2 = f1 + f2;   
           f1 = f;    
           System.out.println("第" + i +"个月的兔子对数: "+f2);       
       }
    }
}谁能帮小弟   详细的分析一下这个问题???

解决方案 »

  1.   

    没啥好分析的,分析数列前n项规律并用数学方法证明:
    斐波拉契数列求An项公式为:f(i)=f(i-1)+f(i-2),i>2.
    上述的代码是用非递归方法求该数列第n项的值。仅此而已。
      

  2.   

    他这个是通过数学规律总结出来的。
    我没弄明白他是怎么巧妙的使:小兔子长到第三个月后每个月又生一对兔子  跳过这3个月的,逻辑思维想不明白!!!那如果是没5个月后
    for(int i=5; i<=M; i++)  
      {   
         f = f2;   
         f2 = f1 + f2;   
         f1 = f;    
        System.out.println("第" + i +"个月的兔子对数: "+f2);       
        }
    他逻辑怎么跳过这几个月的