Reverse Number
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.
题意:输如一个数,然后吧前面符号和后面零保留,中间倒序,输出。
直接全当做字符串处理。
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
char a[20];
int t,i,j,b,z;
scanf("%d",&t);
getchar();
while(t--)
{
b=0;
for(i=0; i<30; i++)
{
scanf("%c",&a[i]);
if(a[i]=='-')
b=1;
if(a[i]=='\n')
break;
}
if(b)
printf("-");
z=0;
for(j=i; j>=0; j--)
{
if(a[j]<59&&a[j]>48)
break;
z++;
}
for(i=j; i>=0; i--)
{
if(a[i]<59&&a[i]>47)
printf("%c",a[i]);
}
z--;
while(z--)
printf("0");
printf("\n");
}
return 0;
}