题干:
反转数字
描述
输入一个 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;
}