mathball
Version:
A JavaScript library for Competitive Programming
51 lines (43 loc) • 779 B
JavaScript
;
/* Fibonacci Number
* Function: fibonacci()
*/
var validate = require('../validation/positive-integer');
function fib(num) {
if (num <= 2) {
return 1;
}
var n1 = 1,
n2 = 1,
total = void 0;
for (var i = 3; i <= num; i++) {
total = n1 + n2;
n1 = n2;
n2 = total;
}
return total;
}
exports.find = function (num) {
validate(num, 'fibonacci');
return fib(num);
};
/* Range Fibonacci Number
* Function: rangeFibonacci()
*/
var rangeFib = function rangeFib(num) {
var n1 = 0,
n2 = 1,
nextT = null,
rangeArr = [];
do {
rangeArr.push(n1);
nextT = n1 + n2;
n1 = n2;
n2 = nextT;
} while (n1 <= num);
return rangeArr;
};
exports.range = function (num) {
validate(num, 'rangeFibonacci');
return rangeFib(num);
};