标签:
#include<iostream>
#include<math.h>
using namespace std;
int reverse(int x)
{
if(x>=0)
{
int a=x;
int b=a/10;
int c=a%10;
int last_result=c;
while(b!=0)
{
if(last_result>2147483647/10)
return 0;
last_result*=10;
c=b%10;
b=b/10;
if(last_result>2147483647-c)
return 0;
last_result+=c;
}
return last_result;
}
else
{
int a=abs(x);
int b=a/10;
int c=a%10;
int last_result=c;
while(b!=0)
{
if(last_result>2147483647/10)//(2^31-1)/10
return 0;
last_result*=10;
c=b%10;
b=b/10;
if(last_result>2147483647-c)//2^31-1-c
return 0;
last_result+=c;
}
return -last_result;
}
}
int main()
{
//int x=1534236469;
//int x=-2147483648;
//int x=1563847412;
int x=-2147483412;
cout<<reverse(x)<<endl;
/*
long int a=964632435;
long int c=9646324351;
long int b=a*10;
cout<<a<<‘ ‘<<b<<‘ ‘<<c<<endl;*/
}
leetcode_26题——Reverse Integer(int型的表示范围)
标签:
原文地址:http://www.cnblogs.com/yanliang12138/p/4530617.html