### Getting down with Fibonacci →

###### 7:39 pm, 17 December 2012 / 1 Comments

For many Computer Science students, this generic programming problem will be familiar. However, a lot of front-end devs won’t have studied CS (I didn’t). I was asked to interview a CS undergraduate the other day and part of the process was to ask them to solve the following problem:

Write a function that returns the nth term of the Fibonacci sequence

My first question was… “What’s the Fibonacci sequence?”.

After determining what the problem was, I gave it a go myself. My solution is written in JS:

// function accepts the nth term as an argument
function fibonacci(n) {

// validate argument
if (!n || typeof(n) !== 'number') { return };

// create an array and start the sequence
var seq = [0,1];

// determine how many iterations are required
// generate the sequence up to the nth term only
for (var i = 0; i < (n - 2); i++) {
// calculate sum of last 2 terms in sequence
var next = seq[seq.length - 1] + seq[seq.length - 2];
// add nth term to sequence array
seq.push(next);
}

// retrieve last number in sequence
var x = seq[seq.length - 1];
return x;

}

console.log(fibonacci(20)); // returns 4181​​​​​​​​​​​​​​​​​​​​​​​​​​

There are recursive methods, which are more elegant but more expensive. I'm guessing there are also a thousand variations of the approach I took.

#### 1 Comment

1. Very elegant solution