我正在尝试在node.js
. 从非常简单的递归方法到最复杂的算法。这是代码:
process.stdin.resume();
var i = 0, t = 0;
process.stdin.on('data', function (n) {
if (t == 0) {
t = n;
} else {
if (i++ < t) {
process.stdout.write(Factorial(n).toString());
if (i == t) {
process.exit();
}
} else {
process.exit();
}
}
});
function Factorial (n) {
if (n > 1) {
n *= Factorial(n - 1);
}
return n;
}
问题是——数字表示。我希望有准确的答案:
100! = 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
但我现在收到更合乎逻辑但对我没用的:
100! = 9.33262154439441e+157
我相信阶乘的二进制表示是正确的,但我怎么能得到它的“松散”形式呢?