题目描述
给定一个整数,请将该数各个位上数字反转得到一个新数。
新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零。
输入格式
输入共1行,1个整数N。
输出格式
输出共1行,1个整数表示反转后的新数。
数据范围
|N|≤10^9
输入样例:
123
输出样例:
321
输入样例:
-380
输出样例:
-83
分析
特判0和负数 0则直接输出0 负数则输出负号后转换成正数
从尾部到头部 取到第一个非零的个位数后 倒序存到字符串里输出
代码
#include<iostream>
using namespace std;
string itos(int n)
{
string s;bool flag=0;
while(n)
{
if(n%10!=0) flag=1;
if(flag) s+=n%10+'0';
n/=10;
}
return s;
}
int main()
{
int n;cin>>n;
if(n==0){
cout<<0;
return 0;
}
else if(n<0){
cout<<"-";
n=-n;
}
cout<<itos(n);
}