题目描述
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。
输入格式:
一个整数 N
输出格式:
一个整数,表示反转后的新数。
输入样例1:
123
输出样例1:
321
输入样例2:
-380
输出样例2:
-83
【数据范围】
−1,000,000,000≤N≤1,000,000,000。
解题思路
这道题需要先把数字换成字符串。判断正负号,并且判断从哪位开始不是0。从第一个不是0的开始打印。
代码
#include <bits/stdc++.h>
using namespace std;
int main(int argc, const char * argv[]) {
string a;
cin>>a;
int len=0;
if(a[0]=='-'){
len++;
printf("-");
}
bool tf=false;
for(int i=a.length()-1;i>=len;i--){
if(a[i]=='0'&&tf==false){
continue;
}
tf=true;
cout<<a[i];
}
return 0;
}
有点难。。。
智商不够了。。。