Последовательность Фибоначчи - это один из вопросов интервью, от которого не смогли бы уклониться 50% разработчиков. На первом техническом собеседовании я написал код для вычисления последовательности Фибоначчи в массиве. Забавно, но на той неделе я впервые услышал последовательность Фибоначчи. К счастью для меня, это было онлайн-собеседование с установленным сроком, так что у меня было время погуглить об этом, но найти ресурсы было довольно сложно. Отсюда этот пост о том, как решить последовательность Фибоначчи с помощью JavaScript, чтобы кто-то изучал ее намного проще и быстрее.
Во-первых, последовательность Фибоначчи - это форма последовательности, состоящей из чисел Фибоначчи, так что каждое число представляет собой сумму две предыдущие, начиная с 0 (ноль) или 1 (единица), согласно Википедии.
Следовательно, в математике

1st term = 0; 2nd Term = 1; and Fn  = Fn – 1  + Fn  - 2 ( when n > 1)

Последовательность Фибоначчи выглядит так: 0,1,1,2,3,5,8,13,21,34,55,…

Существуют различные методы, которые можно использовать для решения последовательности Фибоначчи:
1. Цикл пока:

Цикл while позволяет запускать код, пока указанное условие истинно, и останавливается, когда условие перестает быть истинным.

//declare function;
var fibo = function(result, length){
//declare variables;
var fib1= result[0];
var fib2 = result[1];
var next;
var count = 2;
// the while loop;
while(count < length) {
next = fib1 + fib2;
//assign the next numbers in such a way that the next two numbers to be added will always be the last two numbers.
fib1 = fib2;
fib2 = next;
result.push(next);
count++;
}
return result;
};
console.log(fibo([0,1],20));

2. Для цикла:

Для цикла, такого как «цикл while», выполняется определенное количество раз, условие оценивается в начале каждой итерации цикла и будет продолжаться до тех пор, пока оно будет истинным.

//declare function;
var fibo2 = function(result, length){
//declare variables;
var fib1= result[0];
var fib2 = result[1];
var next;
// declare the condition of the for loop;
for(i = 2; i < length ; i++) {
next = fib1 + fib2;
//assign the next numbers in such a way that the next two numbers to be added will always be the last two numbers.
fib1 = fib2;
fib2 = next;
result.push(next);
}
return result;
};
console.log(fibo2([0,1],20));

3. Рекурсия:

Рекурсия - это функция, которая в основном вызывает сама себя, у нее есть базовый случай, который сообщает рекурсивной функции, когда ей больше не нужно вызывать себя.

var fibo3 = function fibo3(result, length){
if(result.length >= length){
return result;
}
result.push(result[result.length — 2] + result[result.length — 1]);
return fibo3(result, length)
};
console.log(fibo3([0,1],20));

Используя любой из этих методов, вычисляет массив, содержащий числа Фибоначчи в последовательности с использованием JavaScript.

Ссылка:
Все о JavaScript