列入:
    1,1,2,3,5,8,13,21,34,55..........   怎样知道第n项是什么???  

解决方案 »

  1.   


    public int GetNum(int pos)
            {
                if(pos==0||pos==1)
                {
                    return 1;
                }
                int val = GetNum(pos - 1) + GetNum(pos - 2);
                return val;
            }
      

  2.   

    飞波那切数列,
    后一项等于前两项之和//...
     static int Calculate(int i){
       if(i==0||i==1)return 1;
       return Calculate(i)+Calculate(i-1);
     }
    //...
      

  3.   

    对不起写错了,应该是
    //...
     static int Calculate(int i){
       if(i==0||i==1)return 1;
       return Calculate(i-1)+Calculate(i-2);
     }
    //...
      

  4.   


    static void Main(string[] args)
            {
                int n = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine(GetNum(n).ToString());
            }
            public static int GetNum(int pos)
            {
                if (pos == 0 || pos == 1)
                {
                    return 1;
                }
                int val = GetNum(pos - 1) + GetNum(pos - 2);
                return val;
            }
    //输入1,输出1.
    //输入2,输出2.
    //输入3,输出3.
    //输入4,输出5.
    //第一项和第二项应该都是1才对,可现在第二项是2啊
      

  5.   

        protected int recursion(int pos)
        {
            if (pos == 3) return 2;
            if (pos < 3) return 1;
            return recursion(pos - 2) + recursion(pos - 1);
        }1楼已经给出答案了, 就是少了个pos==3的判断
      

  6.   

    csdn不能修改自己的帖子??  囧        for (int i = 1; i <= 10; i++)
            {
                Response.Write(recursion(i)+",");
            }得到1,1,2,3,5,8,13,21,34,55,
    应该就是LZ要的了吧~
      

  7.   


    int GetNum(int n)
    {
       if (1 == n || 2 == n)
       {
          return 1;
       }
       else if (n > 2)
       {
          return GetNum(n - 1) + GetNum(n - 2);
       }
       else
       {
          //when n <= 0.
          return 0;
       }
    }
      

  8.   

    如果只是想知道第n项的值,用递归还可以。
    如果要打印从1到n项所有的值,最好保存前2项的值,这样可以提高效率。int n1 = 1;
    int n2 = 1;
    Console.Write(n1.ToString() + ", " + n2.ToSting());int temp;
    for(int i = 3; i <= n; i++)
    {
        temp = n1;
        n1 = n2;
        n2 += temp;
        Console.Write(", " + n2.ToString());
    }
      

  9.   

    你找到规律了吗
    f(n)=1;             n=0
    f(n)=1;             n=1
    f(n)=f(n-1)+f(n-2); n>=2
      

  10.   

    算法如下:
    int fun(int n)
    {
    if(n=1||n=2)
      return(1);
    else if(n>1)
      return(fun(n-1)+fun(n-2));
    else 
       exit(1);
    }