* fix(guide) add stubs and correct file path misspellings and pr… (#36528) * fix: corrected file path to match curriculum * fix: renamed to newer challenge name * fix: added solutions to articles from challenge files * fix: added missing .english to file name * fix: added missing title to guide article * fix: correct solution for guide article * fix: replaced stub with hint * fix: added space in Hint headers * fix: added solution to guide article * fix: added solution to guide article * test: replaced stub with hint and solution * fix: add Problem number: to title * fix: changed generatorexponential to correct name * fix: renamed knight's tour to knights-tour * fix: updated guide article
1.8 KiB
1.8 KiB
title
title |
---|
Problem 2: Even Fibonacci Numbers |
Problem 2: Even Fibonacci Numbers
Problem Explanation
- A fibonacci sequence is a sequence where
fib(n) = fib(n-1) + fib(n-1)
. - In this challenge we have to sum all the even numbers upto
nth
term in the sequence. - Example for
fiboEvenSum(10)
:-
The sequence till 10th term is: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89
-
Sum of all even number in the above sequence is: 2 + 8 + 34 = 44
-
Relevant Links
Solutions
Solution 1 (Click to Show/Hide)
Iterative
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 = 3; 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;
}
Solution 2 (Click to Show/Hide)
Recursive
// We use memoization technique to save ith fibonacci number to the fib array
function fiboEvenSum(n) {
const fib = [1, 1, 2];
let sumEven = fib[2];
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;
}