问题描述:
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零
代码:
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <string>
using namespace std;
int main(){
long long n; //输入一个数字
cin >> n;
int longth = 0; //数字长度
int i = 0;
int a[15]; //存放数字
if (n < 0) {
n = abs(n);
cout << '-';
}
if(n==0){
cout<<0<<endl;
return 0;
}
while (n) {
a[i] = n % 10;
n = n / 10;
longth ++;
i++;
}
int flag=0;
for (int i=0; i < longth; i++) {
if (a[i] == 0&&flag==0) {
continue;
}
else {
cout << a[i];
flag=1;
}
}
return 0;
}
来一个更简洁的代码
int reverse(int x) {
long res=0;
while(x){
int k=x%10;
res=res*10+k;
x/=10;
}
if(int(res)!=res) return 0;
return res;
}