【题目描述 Description】
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。
输入输出格式 Input/output
【输入格式】
输入文件名为reverse.in 。
输入共1 行,一个整数 N。
【输出格式】
输出文件名为reverse.out 。
输出共1行,一个整数,表示反转后的新数。
【输入输出样例 Sample input/output】
样例测试点#1
样例1:
【样例输入】
123
【样例输出】
321
样例2:
【样例输出】
-380
【样例输出】
-83
难点1:考虑负数情况
难点2:考虑末尾有0的情况
测试数据:请翻看顶部,有测试数据10组“reverse.rar”下载链接,自行测试自己的代码。
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int main(void)
{
freopen("reverse.in","r",stdin);
freopen("reverse.out","w",stdout);
int i=0,nlen=0,ans=0,num=0,flag=0;
int N[21]={0};
cin>>num;
if(num<0)
{
num=-num;
flag=1;
}
for(i=1;num!=0;i++)
{
N[i]=num%10;
num/=10;
}
nlen=i-1;
for(i=1;i<=nlen;i++)
{
ans=ans*10+N[i];
}
if(flag==0)cout<<ans<<endl;
else
{
ans=-ans;
cout<<ans<<endl;
}
fclose(stdin);
fclose(stdout);
return 0;
}