数字反转
题目描述
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见实例 2)。
输入描述
输入共 1 行,一个整数 −109≤N≤109。
输出描述
输出共 1 行,一个整数,表示反转后的新数。
输入输出样例
示例 1
输入
123
输出
321
示例 2
输入
-380
输出
-83
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());//删除反转后首位的0if(flag==1)a='-'+a;//还原‘-’号cout<<a;return 0;
}
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初始等于0a/=10;}printf("%lld",b);return 0;
}