Последовательность Фибоначчи - это один из вопросов интервью, от которого не смогли бы уклониться 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