【hdu - 1266 Reverse Number】
Reverse Number
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 2924 Accepted Submission(s): 1348
Problem Description
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.
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
1200
Sample Output
21
-21
2100
Author
lcy
Source
1 // Project name : 1266 2 // File name : main.cpp 3 // Author : Izumu 4 // Date & Time : Sun Jul 8 17:12:48 2012 5 6 7 #include <iostream> 8 #include <string> 9 using namespace std; 10 11 int main() 12 { 13 int n; 14 cin >> n; 15 while (n--) 16 { 17 char s[1000]; 18 cin >> s; 19 20 if (s[0] == '-') 21 { 22 cout << "-"; 23 } 24 25 int top = 0; 26 while (s[top] != '\0') 27 { 28 top++; 29 } 30 top--; 31 32 int current = top; 33 while (s[current] == '0' && current >= 0) 34 { 35 current--; 36 } 37 38 while (s[current] >= '0' && s[current] <= '9') 39 { 40 cout << s[current]; 41 current--; 42 } 43 44 while (s[top] == '0' && top >= 0) 45 { 46 cout << "0"; 47 top--; 48 } 49 50 cout << endl; 51 52 } 53 return 0; 54 } 55 56 // end 57 // ism