3
05/11/2024 7:08 pm
Topic starter
Write a JS function that when called, returns the next Fibonacci number, starting at 0, 1. Use a closure to keep the current number.
Input:
There will be no input.
Output:
The output must be a Fibonacci number.
Example:
let fib = getFibonator(); fib(); // 1 fib(); // 1 fib(); // 2 fib(); // 3 fib(); // 5 fib(); // 8 fib(); // 13
1 Answer
2
05/11/2024 7:09 pm
My solution - Fibonacci with a closure in JavaScript:
let fib = (function () {
let f0 = 0;
let f1 = 1;
return function () {
let oldf0 = f0;
let oldf1 = f1;
f0 = oldf1;
f1 = oldf0 + oldf1;
return f0;
}
})();
console.log(fib());//->1
console.log(fib());//->1
console.log(fib());//->2
console.log(fib());//->3
console.log(fib());//->5
console.log(fib());//->8
console.log(fib());//->13
