I found a interesting interview questions that is most likely a bit over done, but I still like it, it reminds me of my intro to programming classes from back in the day, which for me was only about 5 years ago. This one concerns the Fibonacci Numbers. The problem is write the **Fibonacci Sequence without Recursion**. With Recursion the fib sequence is relatively easy:

public static int GetFibValueRecursive(int place)

{

if (place <= 0) return 0;

if (place == 1) return 1;

return GetFibValueRecursive(place - 1) + GetFibValueRecursive(place - 2);

}

First step to this problem I would write a test to make sure my code is correctly solving the problem.

public void GetFibValue_GivenPlace_ReturnCorrectValue()

{

Assert.AreEqual(0, Fibonacci.GetFibValue(-1));

Assert.AreEqual(0, Fibonacci.GetFibValue(0));

Assert.AreEqual(1, Fibonacci.GetFibValue(1));

Assert.AreEqual(1, Fibonacci.GetFibValue(2));

Assert.AreEqual(34, Fibonacci.GetFibValue(9));

Assert.AreEqual(144, Fibonacci.GetFibValue(12));

}

Then the code.

public static int GetFibValue(int place)

{

if (place <= 0) return 0;

int previous = -1;

int result = 1;

for (int i = 0; i <= place; ++i)

{

int sum = result + previous;

previous = result;

result = sum;

}

return result;

}

Bam! The Fibonacci Sequence without recursion of course if you wanted more than just a value for given place I would write it a little different perhaps return a list of values instead of a single value.FibSequence.zip (71.66 KB)