总结:
解决这一道题,我们需要了解JavaScript的基本变量的基本性质,强制转换,或者是比较底层的数字变换,和溢出问题。

/**
* @param {number} x
* @return {number}
*/
var reverse = function(x) {
if(x==0) return 0;
//满足题目不让溢出的条件
if(x<(Math.pow(-2, 31)) || x>(Math.pow(2, 31)-1)) return 0;
// console.log(-2^31)
let flag = true
//满足负数,因为我们要转便到字符串
if(x<0) {
x * -1
flag = false
}
let result = parseInt(x.toString().split("").reverse().join(""))
if(result<(Math.pow(-2, 31)) || result>(Math.pow(2, 31)-1)) return 0;
if(flag === false) return result*-1
return result
};
数学方法,处理溢出
var reverse = function (x) {
let num = 0
a = Math.abs(x)
while(a!=0){
temp = a%10 //获取各位
num = num*10 + temp //接受数子 成为倒转的数子
a = parseInt(a/10) //a为去掉后面的数
}
console.log(num)
//输出&& 溢出判断
if(x < 0 && num < Math.pow(2, 31)) {
return -num
}else if( x>0 && num < Math.pow(2, 31) - 1){
return num
}else {
return 0
}
};
网友评论