Skip to content

Instantly share code, notes, and snippets.

@erhangundogan
Created August 11, 2015 21:36
Show Gist options
  • Select an option

  • Save erhangundogan/3363d967a08ed41337d8 to your computer and use it in GitHub Desktop.

Select an option

Save erhangundogan/3363d967a08ed41337d8 to your computer and use it in GitHub Desktop.
Factorial and BigNumbers
var factorial = function(n) {
var res = [1];
var res_size = 1;
for (var x = 2; x <= n; x++) {
res_size = multiply(x, res, res_size);
}
return res.reverse();
};
var multiply = function(x, res, res_size) {
var carry = 0;
for (var i = 0; i < res_size; i++) {
var prod = res[i] * x + carry;
res[i] = prod % 10;
carry = parseInt(prod / 10);
}
while (carry) {
res[res_size] = carry % 10;
carry = parseInt(carry / 10);
res_size++;
}
return res_size;
};
console.log(factorial(25).join(''));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment