Reverse Number hdoj 1266

来源:互联网 发布:人工智能属于什么专业 编辑:程序博客网 时间:2024/06/09 20:05

/*
Reverse Number

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


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
 

Recommend
lxj   |   We have carefully selected several similar problems for you:  1279 1256 1302 1276 1283
 
*/
/*超时*/
/*
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main()
{
 int T;
 scanf("%d",&T);
 while(T--)
 {
  int n,p,i;
  scanf("%d",&n);
  if(n<0)
   {
   n=~n+1;
   printf("-");
   }
   
    int count=0;
    while(n%10==0)
    {
     n/=10;
     count++;
    }
   
   while(n)
   {
   p=n%10;
    printf("%d",p);
      n/=10;
   }
   for(i=0;i<count;i++)
     printf("0");
   printf("\n");
 }
 return 0;
}
*/
/*AC*/

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define M 1000
char s[M];
int main()
{
 int T;
 scanf("%d",&T);
 while(T--)
 {
  scanf("%s",s);
  int i,j,len,count=0,p=0;
   len=strlen(s);
  
   p=len-1;
   while(s[p]=='0') //计算末尾的0的个数
   {  
     
    count++;
     p-=1;
   }
   if(s[0]=='-')
  {
     printf("-");
  for(i=p;i>0;i--)
      printf("%c",s[i]);
    }
  else
  for(i=p;i>=0;i--)
        printf("%c",s[i]);
     
    for(j=0;j<count;j++)   //不要忘记将末尾的0输出
      printf("%c",'0'); 
      printf("\n");
 }
 return 0;
}

0 0
原创粉丝点击