My function accepts a number, which generates total Fibonacci numbers. I am using recursion.
Please follow the code below,
var fibo = (n) => {
var fibonacci = fibonacci;
var fiboNums = [], prevNum = 0, currentNum = 0;
fibonacci(n, prevNum, currentNum);
console.log(fiboNums.toString());
function fibonacci(num, prev_num, cur_num){
var temp = prev_num;
fiboNums.push(prev_num);
prev_num = (prev_num === 0) ? (prev_num + 1) : cur_num;
cur_num = (prev_num === 1 || prev_num === 2) ? (prev_num + 1) : prev_num + temp;
num--;
if(num > 0) {
fibonacci(num, prev_num, cur_num);
}
}
}
fibo(6);
fibo(8);
fibo(10);
fibo(12);
The output is as below,
PS D:\> node .\fibonacci.js
0,1,2,3,5,8
0,1,2,3,5,8,13,21
0,1,2,3,5,8,13,21,34,55
0,1,2,3,5,8,13,21,34,55,89,144
PS D:\>
Please review the above code and let me know is there any room for improvement. Can I further optimise the code ?
0, 1, 1, 2, 3...i.e.1is there twice. Your code isn't correct. \$\endgroup\$