odin-default-js-exercises/10_fibonacci/solution/fibonacci-solution.js

35 lines
825 B
JavaScript
Raw Normal View History

const fibonacci = function(countArg) {
// checks argument's type and makes sure we use
// a number throughout rest of function.
let count
if (typeof countArg !== 'number') {
count = parseInt(countArg)
} else {
count = countArg
}
if (count < 0) return "OOPS";
2023-09-18 21:01:33 +00:00
if (count == 0) return 0;
2023-07-05 14:15:36 +00:00
let firstPrev = 1;
let secondPrev = 0;
for (let i = 2; i <= count; i++) {
2023-07-06 14:47:20 +00:00
let current = firstPrev + secondPrev;
2023-07-05 14:15:36 +00:00
secondPrev = firstPrev;
2023-07-06 14:47:20 +00:00
firstPrev = current;
}
2023-07-05 14:15:36 +00:00
return firstPrev;
2022-02-20 19:07:44 +00:00
};
// Another way to do it is by using an iterative approach with an array containing two values, 0 and 1.
// const fib = [0, 1];
// for (let i = 2; i <= count; i++) {
// fib[i] = fib[i - 1] + fib[i - 2];
// }
// return fib[count];
2022-02-20 19:07:44 +00:00
module.exports = fibonacci;