描述
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。
输入
输入共 1 行,一个整数N。
-1,000,000,000 ≤ N≤ 1,000,000,000。
输出
输出共 1 行,一个整数,表示反转后的新数。
样例输入
样例 #1: 123 样例 #2: -380
样例输出
样例 #1: 321 样例 #2: -83
#include <iostream>
#include <cstdio>
#include <cmath>
#include <string>
#include <vector>
#include <cstring>
#include <set>
using namespace std;
const int N=1000000;
int a[N];
int main()
{
int n;
cin>>n;
if(n<0) printf("-");
n=abs(n);
bool flag=false;
while(n!=0){
if(n%10!=0) flag=true;
if(flag){
printf("%d",n%10);
}n/=10;
}
if(!flag){
printf("0");
}
return 0;
}
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <string>
#include <cstring>
using namespace std;
int main() {
string s;
cin >> s;
if(s=="0")
{
cout<<"0";
return 0;
}
bool is_negative = false;
if (s[0] == '-') {
is_negative = true;
s = s.substr(1);
}
if (is_negative) {
cout << '-';
}
reverse(s.begin(), s.end());
bool flag = false;
for (int i = 0; i < s.length(); i++) {
if (s[i] != '0') {
flag = true;
}
if (flag) {
cout << s[i];
}
}
return 0;
}