赞
踩
【问题描述】
给出一个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;
- }
-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。