今天偶然发现了一道题目:
Given a 32-bit signed integer, reverse digits of an integer.
题目让我写一个函数,它把 integer传进来,函数返回 integer的反转数.这个题也没什么难度,但是他要求32位,而我们都知道js里的整数只有16位,这样的话,要是参数稍微大一点,肯定会溢出
所以我无奈之下将 integer转化为字符串,将字符串反转之后再通过parseInt转化为整形查过资料后发现parseInt支持的整形最大可以到1999999999,这样32位整形就不会溢出了
完整的代码如下:
var reverse = function(x) {
var flag=0;
if(x<0)
{
flag=1;
}
var y=x.toString();
var l=y.length;
var i=l-1;
var s='';
while (i>=0){
s=s+y[i];
i--;
}
var r=parseInt(s);
if(flag===1)
{
r=-r;
}
if(r>4294967296/2||r<-4294967296/2)
r=0;
return r;
};