Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
class Solution {
public:
int reverse(int x) {
int flag;
if(x<0)
{
flag=1;
x=-x;
}
long long int res=0;
while(x>0)
{
int temp=0;
temp=x%10;
res=res*10+temp;
x=x/10;
}
if(res>INT_MAX)
{
return 0;
}
if(flag==1)
res=-res;
return res;
}
};
注意问题
1、一个整数以1开头9结尾,没有越界,但是反过来就越界了,所以要考虑越界问题
2、中间接收值得时候要定义一个比较大的数来接收反转过来的值
3、16位int原码:0111,1111,1111,1111即32767int型的范围是-32768~32767 32位min:-2147483648 max:2147483647
4、INT_MAX可表示int最大值
5??## ***while(x!=0)不对,while(x>0)就对,不明白为什么***一个int的数/之后,最后肯定等于0啊??提示 32位最小测试时错误,越界?原码补码?