题目描述
给定一个整数,请将该数各个位上数字反转得到一个新数。
新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零。
输入格式
输入共1行,1个整数N。
输出格式
输出共1行,1个整数表示反转后的新数。
数据范围
|N|≤109
输入样例:
123
输出样例:
321
输入样例:
-380
输出样例:
-83
C++ 代码
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
int i,j;
string st;
cin>>st;
if(st[0]=='-')//当开头为'-',输出一个'-'表示负数
cout<<"-";
if(st[1]=='0'&&st[0]=='-'||st[0]=='0')//当开头为'0',结果为0;
cout<<"0";
else//除特殊情况外
{
for(i=st.size()-1;i>=0;i--)
{
if(st[i]!='0')//再寻找从末尾起非'0'的数
break;//跳出循环
}
for(j=i;j>=0;j--)//开始逆输出
{
if(st[j]!='-')//防止2次输出'-';
cout<<st[j];
}
}
return 0;
}