HDU 1266 Reverse Number

2015-07-20 17:09:43 ? 作者: ? 浏览: 2
??

Reverse Number

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 5738 Accepted Submission(s): 2632



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.

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 HDU 2006-4 Programming Contest
错了4遍才过。。。 竟然忘记了前导0 的情况。。 -00000000000000 输出0 00000000000 输出0 这道模拟我的代码比较繁琐,,其实可以大大的简洁的。。
#include 
  
   
#include 
   
     #include
     #include 
     
       #include 
      
        #include 
       
         #include
        
          #include 
         
           #include 
          
            #include 
           
             using namespace std; #define inf 0x6f6f6f6f #define mod 10 int flag; void Reverse(__int64 a[],__int64 n,__int64 b[]) { int flag1=0; if(flag) printf("-"); int i,l,l1,j,p; p=l=0; l1++; while(n) { if(n%10!=0 ||flag1==1) { a[l++]=n%10; flag1=1; } else if(n%10==0 &&flag1==0) b[p++]=0; n/=10; } if(p>0) { for(i=0,j=0; i
            
             >t; while(t--) { int flag2=0; memset(a,0,sizeof(a)); int p=0; flag=0; scanf("%I64d",&n); if(n<0) n=-n, flag=1; int o=n; if(o==0) //这里漏了WA了四遍。。 { printf("0\n"); continue; } memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); Reverse(a,n,b); } return 0; } 
            
           
          
         
        
       
      
     
   
  


-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: