程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> HDU 1266 Reverse Number

HDU 1266 Reverse Number

編輯:關於C++


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;
}


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved