Подсолнухи прекрасны. Подсолнухи сильные. Подсолнухи умны.

Подсолнухи могут отращивать новые клетки по спирали — каждая новая клетка образуется после витка. Обычно они содержат два типа спиралей: 34 в одном направлении и 55 — в другом. У некоторых подсолнухов количество спиралей больше — 89 и 144 соответственно. Эти числа: 34 и 55, 889 и 144 — появляются подряд в последовательности Фибоначчи!

Итак, подождите секунду, означает ли это, что Подсолнухи следуют последовательности Фибоначчи?

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ... each number is the sum of the two numbers before it!

"Новая ячейка, затем поворот, затем другая ячейка, затем поворот…"

С математической точки зрения последовательность Fn чисел Фибоначчи определяется рекуррентным соотношением:

Fn = Fn-1 + Fn-2

с начальными значениями

F0 = 0 and F1 = 1.

В JavaScriptпоследовательность Фибоначчи может быть решена с помощью цикла for:

let fibonacci = [0, 1]; // set initial conditions 
for (let i = 2; i < 10; ++i) { 
  // add the two previous elements to get the current element  
  fibonacci[i] = fibonacci[i - 2] + fibonacci[i - 1]; 
  }  
console.log(fibonacci); 
// [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

Найдите n-й элемент в ряду Фибоначчи. Последовательность Фибоначчи начинается с 0, за которым следует 1. После этого каждое значение представляет собой сумму двух предшествующих ему значений. Вот для примера первые семь значений: 0, 1, 1, 2, 3, 5, 8.

function fibonacci(num) {
//if the input is 0 or 1, return the input
if (num < 2) { 
  return num;
 }
//initialize an Array called fibo with the first two values from the sequence
 let fibo = [0, 1];
//loop input - 1 times
for (let i = 0; i < num - 1; ++i) {
//store the sum of the values in fibo in a variable called sum, remove the first element from fibo, push sum onto fibo
const sum = fibo[0] + fibo[1];
  fibo = [fibo[1], sum]
 }
//return the last value in fibo
return fibo[1]
}
Input: 0, Output: 0
Input: 2, Output: 1
Input: 10, Output: 55

ИЛИ с использованием рекурсивного метода — любого метода, который вызывает сам себя. Он используется аналогично циклу: процедура выполняется снова и снова, пока не достигнет точки остановки. Рекурсивные методы должны вызывать сами себя, чтобы считаться рекурсивными:

function fibonacci(n) {
 if(n < 2){
  return n
 }
 return fibonacci(n-1) + fibonacci(n-2)
}
Input: 0, Output: 0
Input: 2, Output: 1
Input: 10, Output: 55

Заключение

Последовательность Фибоначчи встречается повсюду в природе, а также в технических интервью.

"Новая ячейка, затем поворот, затем другая ячейка, затем поворот..."