使用递归算法做一个斐波拉契数组
1,1,2,3,5,8,13,21,34...求第50位使用两种算法解决应该要声明一个数组吧....

解决方案 »

  1.   

    呃   具体实现方法呢...我知道n+1=n+(n-1)...
      

  2.   

    http://blog.csdn.net/fuadam/archive/2007/12/19/1954532.aspx这是我写好的
      

  3.   

    方法一:            for (long i = 1, j = 1, k = 1; k <= 25; k++)
                {
                    MessageBox.Show(j.ToString());
                    MessageBox.Show(i.ToString());
                    j = i + j;
                    i = i + j;
                }
    方法二:long[] fib = new long[50];
                fib[0] = 1;
                fib[1] = 1;
                int i;
                for (i = 2; i < 50; i++)
                {
                    fib[i] = fib[i - 1] + fib[i - 2];
                }
                for (i = 0; i < 50; i++)
                {
                    MessageBox.Show(fib[i].ToString());
                }之所以用long不用int 是应为在地四十几个的时候已经大到int装不下了。
      

  4.   

    刚才是我调试的时候做的、用的WinForm、会弹恨多消息框。
    下面改一下,直接输出地50个数是多少。            long i = 1, j = 1;
                for (int k = 1; k <= 24; k++)
                {
                    j = i + j;
                    i = i + j;
                }
                MessageBox.Show(i.ToString());
    方法二:            long[] fib = new long[50];
                fib[0] = 1;
                fib[1] = 1;
                int i;
                for (i = 2; i < 50; i++)
                {
                    fib[i] = fib[i - 1] + fib[i - 2];
                }
                MessageBox.Show(fib[49].ToString());
      

  5.   


    这个不错   跟斐波拉契数列  的解释很相近   从第3个起HOHO   拿了!  3Q