您的位置:首页 > 编程语言

GEEK编程练习— —反转整数

2016-06-12 08:51 281 查看

题目

把输入的Integer类型数据进行翻转输出。

输入

123
-123


输出

321
-321


分析

1)考虑负数情况

2)考虑溢出情况,以32位整数为例

代码

#include <iostream>
#include <cmath>

using namespace std;

int main()
{
int x;
cin >> x;
long long r = 0;
long long t = x;
t = t > 0 ? t : -t;

for (; t; t /= 10)
{
r = r * 10 + t % 10;
}

bool sign = x > 0 ? false : true;
if (r >  pow(2,32) - 1 || (sign && r > pow(2,32)))
{
cout << 0 << endl;
return 0;
}
else
{
if (sign)
{
cout << -r << endl;
return 0;
}
else
{
cout << r << endl;
return 0;
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  编程 c++