题目:给定一个有符号的32位整数,将整数中的数字进行反转。
注意:
假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231 , 231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0
示例1:
1 | 输入:123 |
示例2:
1 | 输入:-1230 |
解法
这里是将数字进行反转,即可以通过求余依次将原数字末尾数取出,再将原数字除以10并取整供下一次循环使用;即:
1 | pop = num % 10; |
把原数字进行求余和求值的操作后,再进行乘法操作:
1 | temp = 0; |
在 JavaScript 中 Number 的最大安全值和最小安全值均是 Number.MAX_SAFE_INTEGER(9007199254740991) 和 Number.MIN_SAFE_INTEGER(-9007199254740991),很明显比32位整数的范围(-231)(-2147483648) 到 (231 - 1)(2147483647) 大,则不需要考虑安全范围,只需要在[2-31 , 231 -1]的范围外就直接返回0即可。
CODE
1 | function reverseNumVal(numData) { |
总结
这个反转数字比较简单,需要注意有个数字安全值范围和符号求值求余问题(有符号的求余操作:余数的符号和被除数的符号一样,求值的符号是除数和被除数相同为正,不相同为负);