【问题描述】
给出一个32位的有符号整数n,请将该数进行反转(正负符号不变,其余数字反转)。
反转后的数如果溢出,则输出0。
【输入形式】
输入为一行一个整数
【输出形式】
输出为一行一个整数
【样例输入1】
123
【样例输出1】
321
【样例输入2】
-123
【样例输出2】
-321
【样例说明】
32位有符号整形的取值范围为-2147483648~2147483647
【说明】数据溢出的判断
#include <iostream>
using namespace std;
int main()
{
long int n,k=0;
cin>>n;
if(n>=0)
{
while(n>0)
{
if((k*10+n%10)>=214728365&&n>1)
{
k=0;
break;
}
else
{
k=k*10+n%10;
n=n/10;
}
}
cout<<k;
}
else
{
n=-n;
while(n>0)
{
if((k*10+n%10)>=214728365&&n>1)
{
k=0;
break;
}
else
{
k=k*10+n%10;
n=n/10;
}
}
k=-k;
cout<<k;
}
return 0;
}