***
刚学JS不久,在leecode刷到此题时:
看了官方解答写(copy)了如下代码:
/**
* @param {number} x
* @return {number}
*/
var reverse = function(x) {
var rev=0,temp=x;
while(temp>=10||temp<=-10){
rev = rev*10+temp%10;
temp=temp/10;
} rev = rev*10+temp;
if(x<0){
return (rev > 2**31 || (-rev) > 2**31-1 )? 0 : rev;
}
else{return (rev > 2**31-1 || -rev > 2**31 )? 0 : rev;
}
};
输出如图:
为何会是4??
由于以前学习过C和C++,所以看到这个答案十分迷惑。网上搜了一圈,了解到在JS中,由于直接定义var变量类型而不是int类型, 整数相除会保留小数点。
以123为例子,第一轮rev=3,temp=12.3;第二轮rev=30