rt

解决方案 »

  1.   

    又是斐波那契数蹭点分
    static int Fibonacci(int index)
    {
        return index <= 2 ? 1 : Fibonacci(index - 1) + Fibonacci(index - 2);
    }
      

  2.   

    又是斐波那契数蹭点分
    using System;
    using System.Threading;public class Fibonacci
    {
        public Fibonacci(int n, ManualResetEvent doneEvent)
        {
            _n = n;
            _doneEvent = doneEvent;
        }    // Wrapper method for use with thread pool.
        public void ThreadPoolCallback(Object threadContext)
        {
            int threadIndex = (int)threadContext;
            Console.WriteLine("thread {0} started...", threadIndex);
            _fibOfN = Calculate(_n);
            Console.WriteLine("thread {0} result calculated...", threadIndex);
            _doneEvent.Set();
        }    // Recursive method that calculates the Nth Fibonacci number.
        public int Calculate(int n)
        {
            if (n <= 1)
            {
                return n;
            }        return Calculate(n - 1) + Calculate(n - 2);
        }    public int N { get { return _n; } }
        private int _n;    public int FibOfN { get { return _fibOfN; } }
        private int _fibOfN;    private ManualResetEvent _doneEvent;
    }public class ThreadPoolExample
    {
        static void Main()
        {
            const int FibonacciCalculations = 10;        // One event is used for each Fibonacci object
            ManualResetEvent[] doneEvents = new ManualResetEvent[FibonacciCalculations];
            Fibonacci[] fibArray = new Fibonacci[FibonacciCalculations];
            Random r = new Random();        // Configure and launch threads using ThreadPool:
            Console.WriteLine("launching {0} tasks...", FibonacciCalculations);
            for (int i = 0; i < FibonacciCalculations; i++)
            {
                doneEvents[i] = new ManualResetEvent(false);
                Fibonacci f = new Fibonacci(r.Next(20,40), doneEvents[i]);
                fibArray[i] = f;
                ThreadPool.QueueUserWorkItem(f.ThreadPoolCallback, i);
            }        // Wait for all threads in pool to calculation...
            WaitHandle.WaitAll(doneEvents);
            Console.WriteLine("All calculations are complete.");        // Display the results...
            for (int i= 0; i<FibonacciCalculations; i++)
            {
                Fibonacci f = fibArray[i];
                Console.WriteLine("Fibonacci({0}) = {1}", f.N, f.FibOfN);
            }
        }
    }
      

  3.   

    int result;
    int start[30];
    int start[1]=1;
    int start[2]=2;for(int i=1;i<=30-2;i++)
    {
    start[i+2]=start[i]+start[i+1];
    }
    Response.write(start[i+2]);
      

  4.   

    static int Fibonacci(int index)
    {
        return index < 2 ? 1 : Fibonacci(index - 1) + Fibonacci(index - 2);
    }
    这样才对吧。
      

  5.   

    不懂就对了...是MSDN中一个利用线程池计算Fibonacci数列的演示...计算Fibonacci数列的只这一个方法...
        public int Calculate(int n)
        {
            if (n <= 1)
            {
                return n;
            }        return Calculate(n - 1) + Calculate(n - 2);
        }ps:没注意到4楼的错了...<=1或<2才对...
      

  6.   


    还可以省:
    static int f(int i)
    {
        return i<= 2 ? 1 : f(i- 1) + f(i- 2);
    }
      

  7.   

    public class DiGui {

    public static void main(String args[]){
    for(int n = 1; n<=30; n++){
    System.out.println(Fibonacci(n));
    }

    }

    public static int Fibonacci(int j)
    {
        return j <= 2 ? 1 : Fibonacci(j - 1) + Fibonacci(j - 2);
    }}