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(); }
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)); } } } }