JSFiddle - React, Tailwind, and code Playground
by Rahul Sharma
HTML
<script src="http://peterolson.github.com/BigInteger.js/BigInteger.min.js"></script>
JavaScript
var dictionary = [];
function nCr(n, r) {
if (n <= 1) return 1;
if (r > n - r) r = n - r;
if (r == 0) return 1;
if (dictionary[n * 100 + r]) return dictionary[n * 100 + r];
var v = nCr(n - 1, r) + nCr(n - 1, r - 1);
v = v % 1000000007;
dictionary[n * 100 + r] = v;
return v;
}
function getC(l) {
h = "";
for (var i = 0; i <= l; i++) {
h += "{ ";
for (var j = 0; j <= i; j++) {
h += ((j) ? ", " : "") + nCr(i, j).toString();
}
for (var j = i + 1; j < l; j++) {
h += ", 0";
}
if( i != l )
h += ", 0 }, <br/>";
else
h += " }";
}
return h;
}
function getP(n, l) {
var p = 1;
h = "{ 1";
for (var i = 1; i <= l; i++) {
p *= n;
h += ", " + p.toString();
}
h += " }"
return h;
}
function getPP(n, l) {
var p = bigInt(n);
h = "{ 1";
for (var i = 1; i <= l; i++) {
h += ", " + p.toString();
p = p.square().mod(1000000007);
}
h += " }"
return h;
}
var less20 = ['','one ','two ','three ','four ', 'five ','six ','seven ','eight ','nine ','ten ','eleven ','twelve ','thirteen ','fourteen ','fifteen ','sixteen ','seventeen ','eighteen ','nineteen '];
var more20 = ['', '', 'twenty','thirty','forty','fifty', 'sixty','seventy','eighty','ninety'];
function inWords (num) {
if ((num = num.toString()).length > 9) return 'overflow';
n = ('000000000' + num).substr(-9).match(/^(\d{2})(\d{2})(\d{2})(\d{1})(\d{2})$/);
if (!n) return; var str = '';
str += (n[1] != 0) ? (less20[Number(n[1])] || more20[n[1][0]] + ' ' + less20[n[1][1]]) + 'crore ' : '';
str += (n[2] != 0) ? (less20[Number(n[2])] || more20[n[2][0]] + ' ' + less20[n[2][1]]) + 'lakh ' : '';
str += (n[3] != 0) ? (less20[Number(n[3])] || more20[n[3][0]] + ' ' + less20[n[3][1]]) + 'thousand ' : '';
str += (n[4] != 0) ? (less20[Number(n[4])] || more20[n[4][0]] + ' ' + less20[n[4][1]])...