UNPKG

mathball

Version:

A JavaScript library for Competitive Programming

38 lines (27 loc) 905 B
'use strict'; function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } /* N-th bell Number * Function: bell() */ var validate = require('../validation/non-negative-integer'); function bell(number) { var bell = [].concat(_toConsumableArray(Array(number + 1))).map(function (x) { return Array(number + 1).fill(0); }); bell[0][0] = 1; for (var i = 1; i <= number; i++) { var temp = bell[i - 1][i - 1]; bell[i][0] = temp; for (var j = 1; j <= i; j++) { var t1 = bell[i - 1][j - 1]; var t2 = bell[i][j - 1]; bell[i][j] = t1 + t2; } } var v = bell[number][0]; return v; } exports.find = function (num) { validate(num, 'bell'); return bell(num); };