C++的方法:
class Solution {
public:
int reverse(int x)
{
int ob=0;
while(x!=0)
{
int a=x%10;
x/=10; /等同于x=x/10/
if(ob>INT_MAX/10||(obINT_MAX/10&&a>7))
return 0;
if(ob<INT_MIN/10||(obINT_MIN/10&&a<-8))
return 0;
/判断目标数字转换后在int的字节取值范围内是否会溢出/
ob=ob*10+a;
}
return ob;
}
};
在编译时可能会出现的理解错误更正:
1、因为要通过多次调转,才能得到反转数,所以用到while循环,且将开始时的ob设置为0;
2.INT_MAX和INT_MIN是指int这一关键字的所占字节的取值范围,可以调用,不用再定义;
3.当||左右的关系式中存在一边关系式中存在多个关系符号如&&时,要将该关系式进行括号封装,才能避免冗杂报错。