Exemplo n.º 1
0
        static void Main(string[] args)
        {
            string input = Console.ReadLine();
            int    n     = int.Parse(input);

            //1.Recursive
            Recursive recursive = new Recursive();

            Console.WriteLine("Recursive:");
            TimeN(() => recursive.Fibonacci(n));

            //2. Linear
            //Linear linear = new Linear();
            //Console.WriteLine("Linear:");
            //Time(() => linear.Fibonacci(n));

            ////3. Dynamic
            //Dynamic dynamic = new Dynamic();
            //Console.WriteLine("Dynamic:");
            //Time(() => dynamic.Fibonacci(n));

            Console.WriteLine("Recursive Optimized:");
            int[] cachedValues = new int[n + 1];
            cachedValues[1] = 1;

            TimeN(() => recursive.FibonacciOptimized(n, cachedValues));

            Console.ReadLine();
        }
Exemplo n.º 2
0
        public static void Main(string[] args)
        {
            // prepare array with different implementations of Fibonacci number
            Testing[] testings = new Testing[4];
            testings[0] = new Recursive();
            testings[1] = new Iterative();
            testings[2] = new Binet();
            testings[3] = new Array();

            // delete results file
            System.IO.File.Delete(resultPath);

            // fill results.csv with data
            using (System.IO.StreamWriter file = new StreamWriter(resultPath, true))
            {
                file.WriteLine("n;fib;method;measure;value");
                foreach (Testing test in testings)
                {
                    for (ulong i = 0; i < 45; i++)
                    {
                        file.WriteLine(test.timeTesting(i));
                        file.WriteLine(test.operationTesting(i));
                    }
                }
            }
        }