js-daily-study
js-daily-study copied to clipboard
5.[js] 将整数中每位上的数字进行反转
trafficstars
要求:
1、数值范围为 [−Math.pow(2,31), Math.pow(2,31) − 1],如果参数反转后溢出那么就返回 0
2、数字反转:123 -> 321; -123 -> -321; 120 -> 21; -8 -> -8; -85 -> -58
function getNum(num){ if(num>Math.pow(2,31) && num < -Math.pow(2,31)){ return 0 }else{ return num>0?backNum(num):-backNum(-num); } } function backNum(num){ return parseInt(num.toString().split('').reverse().join('')); } console.log(getNum(123)); console.log(getNum(-123)); console.log(getNum(120)); console.log(getNum(-8)); console.log(getNum(-85));
恐怖如斯!
const reverse = function (x) {
const max = Math.pow(2, 31)
let b = 0
while (x) {
b = b * 10 + (x % 10)
x = (x / 10) | 0
}
if (b > max - 1 || b < -max) return 0
return b
};
function getNum(num){
num = num>0?backNum(num):-backNum(-num);
return (num>Math.pow(2,31)-1 || num<-Math.pow(2,31))?0:num;
}
function backNum(num){
return parseInt(num.toString().split('').reverse().join(''));
}