节点.js大数字的输出格式
Node.js output formatting of big numbers
我正在尝试在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
我相信阶乘的二进制表示是正确的,但是我怎么能得到它的"松散"形式呢?
您可以使用以下任何一种:
- 大整数.js
- 大数.js
- JavaScript-bignum
- JSBN.js
实现一个在任何一个之上计算阶乘的函数应该非常简单。如果这样做,您可能希望使用记忆来提高整体性能。下面是一个不支持大整数的基本实现:
var MEMOIZED_FACT = [];
function FACT(number) {
var n = Math.floor(number);
if (n === 0 || n === 1) {
return 1;
} else if(MEMOIZED_FACT[n] > 0) {
return MEMOIZED_FACT[n];
} else {
return MEMOIZED_FACT = FACT(n - 1) * n;
}
}
相关文章:
- Datetime格式为Friendly Time.Moment JS输出错误
- 有没有一种方法可以从两个标签之间提取文本,并以我选择的格式输出
- 输出文本不't以正确格式显示
- 没有获得 json .save 的输出,格式为 pars.html
- 如果 CreateJS 库支持 Texture Packer 的 JSON 输出格式
- 获取表格格式的 Javascript 输出
- 如何使用 JQuQuery 解析 JSON 对象并在 HTML 页面中以表格格式打印输出
- 如何以绘图表格式输出PHP结果
- 查看不同输出格式时的内容协商
- HTML表单Mailto输出格式
- Nashorn探查器输出格式
- 将REST JSON输出格式化为另一种格式
- 如何更改serializeObject输出格式?
- moment(). toobject()输出格式
- POST表单到新选项卡.输出格式为PDF
- ASP.jQuery UI自动完成的输出格式(显示值标签键对)
- Angular-ui: Date -不同的输出格式
- 输出格式不正确
- 对输出格式使用相同的解析格式
- 节点.js大数字的输出格式