我们老师出了道题,写出裴波那数列第N个数字是多少?用控制台应用程序写,要求递归,或者其它方法。

解决方案 »

  1.   

    http://www.channelwest.com/bbs/showtopic.asp?TOPIC_ID=3878&Forum_ID=9
      

  2.   

    using System;namespace ConsoleApplication1
    {
    /// <summary>
    /// Class1 的摘要说明。
    /// </summary>
    class Class1
    {
    /// <summary>
    /// 应用程序的主入口点。
    /// </summary>
    static void Main(string[] args)
    {
    Console.Write("请输入一个非零整数:");
    int n=int.Parse(Console.ReadLine());
    int result=Feboni(n);
    Console.Write("裴波那契数列的第"+n.ToString()+"个数字是"+result.ToString());
    Console.ReadLine();
    } static int Feboni(int i)
    {
    if (i==1)
    return 1;
    if (i==2)
    return 2;
    else
    return Feboni(i-2)+Feboni(i-1);
    }
    }
    }
      

  3.   

    using System;namespace ConsoleApplication48
    {
    /// <summary>
    /// Class1 的摘要说明。
    /// </summary>
    class Class1
    {
    static int feibo(int n)
    {
            //  feibo(1)=1;
    // feibo(2)=1;
    if(n==1||n==2)
     return 1;
    else return feibo(n-1)+feibo(n-2);
    }
    static void Main(string[] args)
    {
    string a =Console.ReadLine();
    int b=Int32.Parse(a);
    //Console.WriteLine(b);
    int m= feibo(b);
    Console.WriteLine(m);
    }
    }
    }
      

  4.   

    以下代码计算从0开始的Fibonacci数列,参考自
    http://www.brpreiss.com/books/opus6/html/page76.htmlusing System;namespace Fibonacci
    {
    /// <summary>
    /// Class1 的摘要说明。
    /// </summary>
    class Class1
    {
    /// <summary>
    /// 应用程序的主入口点。
    /// </summary>
    [STAThread]
    static void Main(string[] args)
    {
    //
    // TODO: 在此处添加代码以启动应用程序
    //
    int n = Fibonacci_Non_Recursive(5);
    n = Fibonacci_Recursive(5);
    } /// <summary>
    /// 非递归的方法
    /// </summary>
    /// <param name="n"></param>
    public static int Fibonacci_Non_Recursive(int n)
    {
    int previous = -1;
    int result = 1;
    int sum;
    for (int i = 0; i <= n; i++)
    {
    sum = result + previous;
    previous = result;
    result = sum;
    }
    return result;
    } /// <summary>
    /// 递归的方法
    /// </summary>
    /// <param name="n"></param>
    public static int Fibonacci_Recursive(int n)
    {
    if (n == 0 || n == 1)
    {
    return n;
    }
    else
    {
    return Fibonacci_Recursive(n - 1) + Fibonacci_Recursive(n- 2);
    }
    }
    }
    }