C:最难的是整数溢出 [−2^31, 2^31 − 1]
int reverse(int x){
int req = 0;
int rev = 0;
while(x!=0)
{
req = x%10;
x = x/10;
rev = rev*10 + req;
if(rev > INT_MAX || rev > (INT_MAX*10) && rev == 7) return 0;
if(rev < INT_MIN || rev < (INT_MIN*10) && rev ==-8) return 0;
return rev;
}
同样的代码,C++提交可以通过,C语言提交却不可以通过。