EN
JavaScript - Fibonacci sequence / number
15
points
Fibonacci numbers can be computed in three ways:
- with an iterative algorithm,
- with a recursive algorithm,
- with Binet's formula.
Note: presented implementations calculate Fibonacci numbers from 0.
1. Iterative algorithm example
// ONLINE-RUNNER:browser;
function calculateValue(number) {
if(number < 1) {
return 0;
}
var a = 0;
var b = 1;
for (var i = 1; i < number; ++i) {
var c = a + b;
a = b;
b = c;
}
return b;
}
// Usage example:
for (var n = 0; n < 10; ++n) {
var value = calculateValue(n);
console.log('f(' + n + ')=' + value);
}
2. Recursive algorithm example
// ONLINE-RUNNER:browser;
function calculateValue(number) {
if(number < 1) return 0;
if(number < 2) return 1;
return calculateValue(number - 2) + calculateValue(number - 1);
}
// Usage example:
for (var n = 0; n < 10; ++n) {
var value = calculateValue(n);
console.log('f(' + n + ')=' + value);
}
3. Binet's formula example
// ONLINE-RUNNER:browser;
function calculateValue(number) {
var a = Math.pow(1 + 2.23606797749979, number);
var b = Math.pow(1 - 2.23606797749979, number);
var c = 2.23606797749979 * Math.pow(2, number);
return Math.round((a - b) / c);
}
// Usage example:
for (var n = 0; n < 10; ++n) {
var value = calculateValue(n);
console.log('f(' + n + ')=' + value);
}