怎样用递归找出(0,1,1,2,3,5,8,13,21)中第30个数是几?

解决方案 »

  1.   

    裴波那契数列,网上到处都是private int Fibonacci(int n)
    {
        if (n == 0)
            return 0;
        else if (n == 1)
            return 1;
        else
            return Fibonacci(n - 1) + Fibonacci(n - 2);
    }
      

  2.   

    我补充一点:
    要用Fibonacci(29)来调用才能得到第30个数。
      

  3.   

    public static int Find(int input)
    {
       if(input<=0)
         return 0;
       else if(input>0 && input <=2)
         return 1;
       else
         return Find(input-1)+Find(input-2);
    }调用函数Find(30);
      

  4.   

            
            //递归算第 30 个数 0 1 1 2 3 5 8 13 21 ...
            int i = 0;
            public static void Count(int a, int b)
            {
                a = a + b;
                b = a + b;
                i++;            if (i == 14)
                {
                    Console.WriteLine("第30个数是:" + b.ToString());
                    return;
                }
                Count(a,b);
             }
             public static void Main(string [] args)
             {
                Count(0,1);
             }