0
点赞
收藏
分享

微信扫一扫

杭电1266--数的倒叙

书写经典 2023-02-06 阅读 82


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.

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

代码1:

# include <iostream>
# include <cstdio>
# include <algorithm>
# include <cstring>

using namespace std;

void f(char *p,int i,int j);

int main(){

char st[100];
int i,j,len;
int n,m;

while(scanf("%d",&n)!=EOF){

for(i=0;i<n;i++){
memset(st,0,sizeof(st));
scanf("%s",st);

if(st[0]!='-'){
len = strlen(st);

j= len - 1;
while(st[j]=='0'&&j!=0) j--;

f(st,0,j);
}else{
len = strlen(st);
j= len - 1;
while(st[j]=='0'&&j!=0) j--;

f(st,1,j);
}


printf("%s\n",st);




}

}


return 0;
}



void f(char *p,int i,int j){

char t;
int n=(i+j)/2;
while(i<=n){
t = p[i];
p[i] = p[j];
p[j] = t;
i++;
j--;

}
}

代码2:

#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
while(n--)
{
_int64 x,t,flag;
int count=0;
cin>>x;
t=0;
flag=0;
if(x<0)
{
x=-1*x;
flag=1;
}
while(x>0)
{

t=t*10+x%10;
x/=10;
if(!t)
count++;
}

if(flag)
cout<<'-';
cout<<t;
while(count--)
{
cout<<0;
}
cout<<endl;
}
return 0;
}


举报

相关推荐

0 条评论