首页 > 其他分享 >杭电1266--数的倒叙

杭电1266--数的倒叙

时间:2023-02-06 21:03:37浏览次数:39  
标签:number reverse -- 1266 st 杭电 int while


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


标签:number,reverse,--,1266,st,杭电,int,while
From: https://blog.51cto.com/u_15955675/6040506

相关文章

  • 杭电1282-回文
    回文数猜想ProblemDescription一个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数。任取一个正整数,如果不是回文数,将该数与他的......
  • 杭电2602---01背包
    骨收集器​​http://acm.hdu.edu.cn/showproblem.php?pid=2602​​问题描述许多年前,在泰迪的家乡有一个叫“拾骨者”的人。这个人喜欢收集不同的骨头,比如狗,牛,他还去了坟......
  • BF算法
    BF:t–>模式串s–>目标串是否在s中可以找到t,从头开始匹配#include<iostream>#include<cstdio>#include<cstring>usingnamespacestd;/*BF算法--串的匹配*......
  • 杭电1248-背包
    院大学生程序设计竞赛(新生为主)寒冰王座TimeLimit:2000/1000MS(Java/Others)MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):13570AcceptedSubm......
  • 杭电1201
    18岁生日ProblemDescriptionGardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都......
  • UVA227--谜题
    #include<iostream>#include<cstdio>usingnamespacestd;intmain(){chara[5][7],t;intn,m,i,j,k;intcases=0;charmodol[1001];while(gets(......
  • 杭电1202--学分
    ThecalculationofGPATimeLimit:2000/1000MS(Java/Others)MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):24013AcceptedSubmission(s):5610P......
  • 杭电1205--吃糖
    吃糖果ProblemDescriptionHOHO,终于从Speakless手上赢走了所有的糖果,是Gardon吃糖果时有个特殊的癖好,就是不喜欢将一样的糖果放在一起吃,喜欢先吃一种,下一次吃另一种,这样;可......
  • 南阳理工--103背包问题
    背包问题难度:3描述现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w<=10);如果给你一个背包它能容纳的重量为m(10<=m<=20),你所要做的就......
  • 杭电1163--9余项定理的例子
    #include<iostream>#include<cstdio>#include<algorithm>usingnamespacestd;intmain(){intn,a[10009];inti,t;while(scanf("%d",&n),n!=0){......