javascript decimal factorial

Solutions on MaxInterview for javascript decimal factorial by the best coders in the world

showing results for - "javascript decimal factorial"
Flavie
20 Apr 2018
1function gamma(n) {  // accurate to about 15 decimal places
2  //some magic constants
3  var g = 7, // g represents the precision desired, p is the values of p[i] to plug into Lanczos' formula
4      p = [0.99999999999980993, 676.5203681218851, -1259.1392167224028, 771.32342877765313, -176.61502916214059, 12.507343278686905, -0.13857109526572012, 9.9843695780195716e-6, 1.5056327351493116e-7];
5  if(n < 0.5) {
6    return Math.PI / Math.sin(n * Math.PI) / gamma(1 - n);
7  }
8  else {
9    n--;
10    var x = p[0];
11    for(var i = 1; i < g + 2; i++) {
12      x += p[i] / (n + i);
13    }
14    var t = n + g + 0.5;
15    return Math.sqrt(2 * Math.PI) * Math.pow(t, (n + 0.5)) * Math.exp(-t) * x;
16  }
17}
18
19function factorial(n) {
20  return gamma(n + 1);
21}