1. .net的错误处理机制
2.   1,1,2,3,5,8,13,21,.........求第N位数(N<30)
     用递归 , 非递归两种方法来做.(代码尽量简洁,效率高)

解决方案 »

  1.   

    1.try ... catch...finally
    2.
    private int Fib1(int n)
            {
                int []a = new int[30];
                a[0] = 1;
                a[1] = 1;
                for (int i = 2; i < n; i++)
                {
                    a[i] = a[i - 1] + a[i - 2];
                }
                return a[n-1];        }
            private int Fib2(int n)
            {
                if (n == 1 || n == 2)
                    return 1;
                else if (n < 30)
                    return Fib(n - 2) + Fib(n - 1);
                else
                {
                    return -1;
                }
            }
      

  2.   

    晕,第一个忘记判断n<30了。
      

  3.   

    2:
      int [] a = new int[30];
      a[0] = 1;a[1] = 1;
      for (int i=2;i<a.length;i++)
       {
         a[i] = a[i-1]+a[i-2];   }
    第n为数就是a[n-1];
      

  4.   

    private int add(int a,int b,int n)
    {
    int c=a+b;
    if(n==3)
    return c;
    return add(b,c,n-1);
    }
    private int add(int a,int b,int n)
    {
    int temp1=a,temp2=b,temp3;
    for(int i=2;i<n;i++)
    {
    temp3=temp2;
    temp2=temp1+temp2;
    temp1=temp3;
    }
    return temp2;
    }
      

  5.   

    凑个热闹//读取数值
    int n = Convert.ToInt32(textBox11.Text);
    //显示字符串
                string str = "";
    //起始值
                int a = 1;
                int b = 0;
    //结果
                int c = 0;
    //循环
                for (int i = 0; i < n+1; i++)
                {
    //奇偶判断
                    if (Math.IEEERemainder(i,2) == 0)
                    {
                        c = a + b;
                        str = str + c.ToString() + ",";
                        a = c;
                    }
                    else
                    {
                        c = a + b;
                        str = str + c.ToString() + ",";
                        b = c;
                    }
                }
    //去掉,号
                textBox11.Text = str.Substring(0, str.Length - 1);
      

  6.   

    private static void Calculate()
            {
                long a = 1;
                long b = 0;
                for (int i = 0; i < 30; i++)
                {
                    a += b;
                    b += a;
                    Console.WriteLine(a);
                    Console.WriteLine(b);
                }
            }