这道题在一本通里也有出现过,不过我忘了是在哪,所以就把它当作洛谷的题解发出来
题目描述
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。
输入格式
一个整数 NN
输出格式
一个整数,表示反转后的新数。
输入输出样例
输入 #1
123
输出 #1
321
输入 #2
-380
输出 #2
-83
说明/提示
数据范围
-1,000,000,000≤N≤1,000,000,000−1,000,000,000≤N≤1,000,000,000。
noip2011普及组第一题
代码如下
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long a;
cin>>a;
if(a<0)
{
a=a-a-a; //将负数转成正数
cout<<"-"; //输出负号
}
while(a%10==0) //判断开头是否是0
a/=10;
while(a!=0)
{
cout<<a%10; //输出末位
a/=10; //缩小
}
return 0;
}