Алгоритм Фибоначчи — один из самых известных и интересных алгоритмов в компьютерной науке. Он позволяет вычислять последовательность чисел Фибоначчи — ряда чисел, в котором каждое следующее число является суммой двух предыдущих.
Суть алгоритма заключается в рекурсивном подсчете чисел Фибоначчи. Он начинается с определения базовых случаев: первые два числа последовательности — это 0 и 1. Затем алгоритм рекурсивно вызывается для вычисления следующего числа, которое является суммой двух предыдущих. Этот шаг повторяется до достижения желаемого числа в последовательности.
Алгоритм Фибоначчи можно представить с помощью следующей формулы:
F(n) = F(n-1) + F(n-2)
где F(n) — это n-ое число в последовательности Фибоначчи, а F(n-1) и F(n-2) — предыдущие два числа.
Алгоритм Фибоначчи имеет много применений в программировании, так как его реализация относительно проста. К примеру, он может использоваться для оптимизации вычислений, кэширования данных или для создания различных алгоритмов.
Алгоритм калькулятора Фибоначчи
1. Реализация с использованием цикла:
Шаги алгоритма:
- Инициализируйте две переменные: prevNum = 0 и currNum = 1. Они соответствуют первым двум числам последовательности.
- Задайте переменную n равной порядковому номеру числа Фибоначчи, которое нужно найти.
- Если n равно 0 или 1, то число Фибоначчи равно n. В этом случае закончите выполнение алгоритма и верните значение n.
- Иначе, выполните следующий цикл n — 1 раз:
- Вычислите следующее число Фибоначчи, присвоив его переменной nextNum. Для этого сложите числа prevNum и currNum.
- Присвойте prevNum значение currNum.
- Присвойте currNum значение nextNum.
- Верните значение currNum, которое будет равно числу Фибоначчи с порядковым номером n.
2. Реализация с использованием рекурсии:
Шаги алгоритма:
- Задайте функцию fibonacci, которая принимает один аргумент n — порядковый номер числа Фибоначчи, которое нужно найти.
- Если n равно 0 или 1, то число Фибоначчи равно n. В этом случае верните значение n.
- Иначе, верните сумму двух вызовов функции fibonacci со значениями n-1 и n-2.
Примеры использования:
С использованием цикла:
function fibonacci(n) {
let prevNum = 0;
let currNum = 1;
for (let i = 2; i <= n; i++) {
let nextNum = prevNum + currNum;
prevNum = currNum;
currNum = nextNum;
}
return currNum;
}
console.log(fibonacci(6)); // Выведет 8
С использованием рекурсии:
function fibonacci(n) {
if (n === 0