实现1,1,2,3,5,8,13,.....    public int GetValue(int i)
    {
        int m = 0;
        if (i == 0)
        {
            m = 0;
        }
        else
        if (i == 1)
        {
            m = 1;
        }
        else
        if (i >= 2)
        {
            m = GetValue(i - 1) + GetValue(i - 2);
        }
      return m;
    }我将参数设为5时没有什么问题,但是我将参数设为30时,程序很慢,好象都计算不出来结果?
算法应该没有问题的,请大家看看?

解决方案 »

  1.   

    Fibonacci数增长很快,算的很慢。最好不要超过40
      

  2.   

    To matchcolor() :
      实际中确实有这样的需求,如果大于40,有没有更好的解决方案?
      

  3.   

    我的机器上运行不会很慢。另外,求Fibonacci数列可以不用递归:
    public int GetValue(int n)
    {
          int i = 1, j = 1,temp;
          for (int k = 2; k < n; k++)
          {
               temp = i;
               i = j;
               j += temp;
          }
          return j;
    }
      

  4.   

    to happyhippy(寂静的虚空):
    那估計是我電腦的問題了