UNPKG

mathball

Version:

A JavaScript library for Competitive Programming

51 lines (43 loc) 779 B
'use strict'; /* 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); };