[英]How to sum a given number and it's reverse number in javaScript
const reversedNum = num =>
parseFloat(num.toString().split('').reverse().join('')) * Math.sign(num)
console.log(reversedNum(456))
无法弄清楚如何编写代码以求和654 + 456
非常感谢!
const reversedNum = num => num + +num.toString().split('').reverse().join('')
您可以在函数内返回 num 和 reversedNum 的总和。
const sumOfNumAndReversedNum= num => {
const reversedNum = parseFloat(num.toString().split('').reverse().join('')) * Math.sign(num)
return num + reversedNum
}
let userNumber = 456
console.log(sumOfNumAndReversedNum(userNumber))
您可以编写一种更高效的方法来反转数字,而不是将其转换为字符串、翻转它,然后再将其转换回整数。
一种选择是通过弹出最后一个整数(例如, 123 % 10 === 3
)并将其添加到新反转的数字中来向后遍历数字。 您还需要在每次迭代中将反转的数字乘以10
,以将您移动到下一个学位。
例如,给定数字123
:
123 % 10 = 3;
123 /= 10 = 12;
0 * 10 + 3 = 3;
1 % 10 = 2;
12 /= 10 = 1;
3 * 10 + 2 = 32
1 % 10 = 1;
1 /= 10 = 0;
32 * 10 + 1 = 321
此方法还将自动为您处理负数,为您留下如下内容:
function reverse(num) {
let reversed = 0;
while (num !== 0) {
const popped = num % 10;
num = parseInt(num / 10);
if (reversed > Number.MAX_VALUE / 10 || (reversed === Number.MAX_VALUE / 10 && popped > 7)) return 0;
if (reversed < Number.MIN_VALUE / 10 || (reversed === Number.MIN_VALUE / 10 && popped < -8)) return 0;
reversed = reversed * 10 + popped;
}
return reversed;
}
现在您可以简单地调用:
console.log(123 + reverse(123))
const reversedNum = num =>
Number(num.toString().split('').reverse().join(''))
console.log(reversedNum(456))
去做吧!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.