题干:
反转数字
描述
输入一个 c 语言 4字节 int 范围内的数字,输出它反转后的数字。比如12345反转后是54321,-12345反转后是-54321。如果反转后的数字不在 int 范围内就输出0;
输入
每行一个 int 范围内的数字,以 EOF 结尾。
输出
输出反转后的数字,每行一个
输入样例 1
12345 -12345
输出样例 1
54321 -54321
提示
如果反转后的数字开头是0,就去掉那些0。
解题报告:
直接模拟、、、
AC代码:
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int MAX = 100000 +5;
int a[1000];
int n,x,p;
void fit(int x) {
while(x) {
a[++p] = x%10;
x/=10;
}
}
int main()
{
int t,flag;
while(~scanf("%d",&n)) {
p = 0;
flag = 0;
if(n<0) flag=1,n=-n;
if(n == 0) {
puts("0");continue;
}
fit(n);
int i=0;
for(i = 1; i<=p; i++) {
if(a[i]!=0) break;
}
ll ans = 0;
for(int j = i; j<=p; j++) {
ans = ans*10 + a[j];
}
if(ans > INT_MAX) {
puts("0");continue;
}
if(flag == 1) putchar('-');
for(int j = i; j<=p; j++) {
printf("%d",a[j]);
}
printf("\n");
}
return 0;
}