有人可以告诉我代码中我要去哪里哪里吗?我正在尝试反转数字而不将其更改为字符串。我一直在搜索google,并浏览了以前有关该主题的所有问题,从中我可以看到我的代码反映了其他答案。
我只能用Java,C或C ++查找不使用to字符串方法的代码。
尝试在浏览器控制台中运行代码时,它给出的答案是“ Infinity”,或者使浏览器崩溃。
这是我的代码...
function reverseNumber(number) {
var revNumber = 0;
while (number > 0) {
revNumber = (revNumber * 10) + (number % 10);
number = number / 10;
}
return revNumber;
}
console.log(reverseNumber(876));
我知道它一定是一些小的语法错误,但我只是没有看到它。任何见识将不胜感激。谢谢!
答案 0 :(得分:8)
number = number / 10;
的{{1}}循环内的 while
表示number > 0
仅在数字精度失败后经过大量迭代后才达到0。 (例如876 => 87.6 => 8.76 => .876 => .0876 ...)那不是您想要的。您可以除以10 除去小数部分:
number
答案 1 :(得分:2)
function reverseInt(int) {
return parseInt(int.toString().split('').reverse().join(''))
}
console.log(reverseInt(510));
答案 2 :(得分:0)
number = Math.floor(number / 10);
您需要将Math.floor设置为number = number / 10
;将给出的浮点值始终大于0
function reverseNumber(number) {
var revNumber = 0;
console.log("######### steps ###########");
while (number > 0) {
console.log("Step " , number);
revNumber = (revNumber * 10) + (number % 10);
number = Math.floor(number / 10);
}
console.log("######### steps End ###########");
return revNumber;
}
console.log(reverseNumber(876));
答案 3 :(得分:0)
这些有效。
基本实施:
function reverse(n)
{
var temp=0;
while(n)
{
temp *= 10;
temp += n%10;
n = Math.floor(n/10);
}
return temp;
}
console.log(reverse(123))
console.log(reverse(456))
console.log(reverse(789))
console.log(reverse(7890))
内联基本实现:
function reverse(n)
{
var reverse=0;
while(n>0) (reverse=reverse*10+n%10, n=Math.floor(n/10));
return reverse;
}
console.log(reverse(123))
console.log(reverse(456))
console.log(reverse(789))
console.log(reverse(7890))
使用数组的实现。
function reverse(n)
{
var arr=[], reverse=0;
while(n>0) (arr.push(n%10), n=Math.floor(n/10));
while(arr.length) reverse=reverse*10+arr.shift();
return reverse;
}
console.log(reverse(123))
console.log(reverse(456))
console.log(reverse(789))
console.log(reverse(7890))
答案 4 :(得分:0)
function reverseNumber(number) {
var revNumber = 0;
while (number > 0) {
revNumber = (revNumber * 10) + (number % 10);
number = Math.floor(number / 10);
}
return revNumber;
}
console.log(reverseNumber(876));
数字表示您的问题,请自行计算数学上的单位,而小数部分也要输入数字。