数字反转
题目描述
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见实例 2)。
输入描述
输入共 1 行,一个整数 −10^9^≤N≤10^9^。
输出描述
输出共 1 行,一个整数,表示反转后的新数。
输入输出样例
示例 1
输入
c
123
输出
c
321
示例 2
输入
c
-380
输出
c
-83
c++
c
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a;
cin>>a;
int flag=0;
if(a[0]=='-')
{
a.erase(a.begin());//删除'-'号
flag=1;//标记
}
reverse(a.begin(),a.end());//反转字符串
while(a[0]=='0')
a.erase(a.begin());//删除反转后首位的0
if(flag==1)
a='-'+a;//还原'-'号
cout<<a;
return 0;
}
C语言
c
#include<stdio.h>
#define ll long long int
int main()
{
ll a=0;
scanf("%lld",&a);
ll b=0;
while(a!=0)
{
b=b*10+a%10;//取出每一位(从个位开始取),再乘10,当然,取出个位时,不用乘10,所以b初始等于0
a/=10;
}
printf("%lld",b);
return 0;
}