【HDU - 1266 】Reverse Number(模拟,数字分位数处理)
題干:
Welcome to 2006'4 computer college programming contest!?
Specially, I give my best regards to all freshmen! You are the future of HDU ACM! And now, I must tell you that ACM problems are always not so easy, but, except this one... Ha-Ha!?
Give you an integer; your task is to output its reverse number. Here, reverse number is defined as follows:?
1. The reverse number of a positive integer ending without 0 is general reverse, for example, reverse (12) = 21;?
2. The reverse number of a negative integer is negative, for example, reverse (-12) = -21;?
3. The reverse number of an integer ending with 0 is described as example, reverse (1200) = 2100.?
Input
Input file contains multiple test cases. There is a positive integer n (n<100) in the first line, which means the number of test cases, and then n 32-bit integers follow.?
Output
For each test case, you should output its reverse number, one case per line.?
Sample Input
3 12 -12 1200Sample Output
21 -21 2100解題報告:
? ?別忘特盤一下n==0的情況,因為這種情況fit函數處理不了。
AC代碼:
#include<cstdio> #include<queue> #include<cstring> #include<cmath> #include<iostream> #include<algorithm> 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;cin>>t;while(t--) {p = 0;flag = 0;scanf("%d",&n);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;}int cnt0 = i-1;if(flag == 1) putchar('-');for(int j = i; j<=p; j++) {printf("%d",a[j]);}for(int j = cnt0; j>0; j--) putchar('0');printf("\n");}return 0; }?
總結
以上是生活随笔為你收集整理的【HDU - 1266 】Reverse Number(模拟,数字分位数处理)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【HDU - 2899】 Strange
- 下一篇: 【HDU - 1263】 水果(STL)