我不明白为什么下面的 JavaScript 程序返回答案 Infinity。我究竟做错了什么?我是新手,希望得到详细的解释!
请注意,这需要仅使用数学和数学函数来完成,不能使用字符串函数或数组!
<script type = "text/javascript">
var input;
var rev = 0;
input=window.prompt ("Please enter a 5-digit number to be reversed.");
input = input * 1;
while (input > 0)
{
rev *= 10;
rev += input % 10;
input /= 10;
}
document.write ("Reversed number: " + rev);
</script>
最佳答案
您的行:input/= 10;
没有生成整数。
你最终得到这样的序列:
input rev
1234.5 5
123.45 54.5
12.345 548.45
这永远不会达到 0,因此您的 while 条件一直持续到达到 1e-323,然后数字超出精度并变为 0。
如果您将 input/= 10;
行替换为 input = Math.floor(input/10);
那么它就可以工作了。
因为这是代码高尔夫,所以您可能不想使用 Math.floor。还有一个小一点的,我再看看能不能找到。
您可以使用 input = ~~(input/10);
前提是 input
始终为正值。
关于algorithm - 反向打印数字系列的Javascript程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6994294/