Files
2018-10-16 21:32:40 +05:30

63 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: Even Fibonacci Numbers
localeTitle: Даже номера Фибоначчи
---
## Проблема 2: Даже числа Фибоначчи
### Метод:
* Последовательность фибоначчи представляет собой последовательность, где `fib(n) = fib(n-1) + fib(n-1)` .
* В этой задаче мы должны суммировать все четные числа до `nth` члена в последовательности.
* Пример для `fiboEvenSum(10)` :
* Последовательность до 10-го срока: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144
* Сумма всех четных чисел в приведенной выше последовательности: 2 + 8 + 34 + 144 = 188
### Решение:
#### Основное решение - Итеративный:
```js
function fiboEvenSum(n) {
let first = 1, second = 2, sum = 2, fibNum; // declaring and initializing variables
if (n <= 1) return sum; // edge case
for (let i = 2; i <= n; i++){ // looping till n
fibNum = first + second; // getting the ith fibonacci number
first = second;
second = fibNum;
if (fibNum%2 == 0) sum+=fibNum; // If even add to the sum variable
}
return sum;
}
```
#### Расширенное решение - Рекурсивное:
```js
// We use memoization technique to save ith fibonacci number to the fib array
function fiboEvenSum(n){
const fib = [1, 2];
let sumEven = fib[1];
function fibonacci(n){
if (n <= 1) return fib[n]; // base condition
else if (fib[n]) return fib[n]; // if the number exists in the array we cache it and return
else {
fib[n] = fibonacci(n-1) + fibonacci(n-2); // otherwise calculcate and save it to the array
if (fib[n]%2 == 0) sumEven+=fib[n]; //if the number is even, add it to the sumEven variable
return fib[n];
}
}
fibonacci(n); // run the recursive function
return sumEven;
}
```
* [Код запуска](https://repl.it/@ezioda004/Project-Euler-Problem-2-Even-Fibonacci-Numbers)
### Рекомендации:
* [Википедия](https://en.wikipedia.org/wiki/Fibonacci_number)