static int numberOfIterations;
static int numberOfLoops;
public static void Main()
Console.WriteLine(Program.InefficientFib(4));
Console.WriteLine(Program.RecursiveFactorial(4));
Console.WriteLine(Program.IterativeFactorial(4));
loops = new int[numberOfLoops];
Program.NestedLoopsRecursive(0);
Console.WriteLine(Program.IterativeFibonacci(5));
public static long InefficientFib(int n)
return InefficientFib(n-1)+InefficientFib(n-2);
public static long RecursiveFactorial(int n)
return n*RecursiveFactorial(n-1);
public static long IterativeFactorial(int n)
public static void NestedLoopsRecursive(int currentLoop)
if(currentLoop == numberOfLoops)
for(int counter = 1; counter <= numberOfIterations; counter++)
loops[currentLoop] = counter;
NestedLoopsRecursive(currentLoop + 1);
public static void PrintLoops()
for(int i = 0; i<numberOfLoops; i++)
Console.Write("{0} ", loops[i]);
Console.WriteLine("----------");
public static long IterativeFibonacci(int n)
fn = fnMinus1 + fnMinus2;
public class RecursiveFibonacci
public static void Main()
Console.WriteLine("n: ");
int n = int.Parse(Console.ReadLine());
Console.WriteLine(n+"---"+result);
foreach(long x in numbers)
Console.Write("{0} ", x);
public static long Fib(int n)
numbers[n] = Fib(n-1)+Fib(n-2);