HDU-1266 Reverse Number

题目链接:点我点我点我

其实这题没啥难度,简单的字符串处理,开学考java练练手而已

只需要注意0 负数 还有 末尾有0的数字就好

另外,书写风格还是太差了。

代码如下:

import java.util.Arrays;
import java.util.Scanner;

public class Main {      

    public static void main(String args[]) {
    Scanner in = new Scanner(System.in);

    int  n = in.nextInt();
    in.nextLine();//吃掉回车符
    while(n>0){
    	String num = in.nextLine();

    	if(num.equals("0"))//输入为0 ,直接输出0
    		{System.out.println("0");n--;continue;}

    	int first=0,end=(num.length()-1);//first end 分别标记符号位以后第几位和 倒数第一个非0位
    	if(num.charAt(0)=='-')//负号直接输出负号
    		{first= 1;System.out.print("-");}

    	int sum=0;//末尾共有sum个0
    	for(;num.charAt(end)=='0';end--)sum++;

    	for(int i = end;i>=first;i--)//first 到 end的数字转置输出
    		System.out.print(num.charAt(i));
    	for(;sum>0;sum--)//最后输出0
    		System.out.print("0");
    	System.out.println();
    	n--;
    }
    }
}     
时间: 2024-10-20 00:27:14

HDU-1266 Reverse Number的相关文章

HDU 1266 Reverse Number(字符串逆转 水题)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1266 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 proble

杭电 HDU 1266 Reverse Number

Reverse Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 5763    Accepted Submission(s): 2643 Problem Description Welcome to 2006'4 computer college programming contest! Specially, I give

(HDU)1266 -- Reverse Number(反向数)

题目链接:http://bak.vjudge.net/problem/HDU-1266 这题要注意前导0和后导0了,用字符串处理找出需要倒序的位置,这题读入字符串忘了getchar(),调试了半天. 另外要注意的是字符串数组下标是从0开始的,最后有一个回车符.而strlen计算字符串长度遇到回车符停止,长度不包括回车符. 举例 :我往s字符串读入hello. s[0]=h s[1]=e s[2]=l s[3=l]  s[4]=o s[5]=\0 strlen(s)返回的是5 . 1 #inclu

HDU 4937 Lucky Number 搜索

题意: 给你一个数,求在多少种不同的进制下这个数每一位都是3.4.5.6中的一个. 思路: 搜索.枚举这个数在任意进制下的表示,判断是否合法.当数字只有3.4.5.6时,必定有无穷种. 因为数字太大,所以直接枚举必定会超时. 下面有两种剪枝的方法: 1. 先枚举最后一位的情况. 假设数字n在base进制下表示为 a[n]...a[0],即 n = a[0] + a[1]*base^1 + ... + a[n]*base^n. 则 n - a[0] = a[1]*base^1 + ... + a[

hdu 4937 Lucky Number ( 进制转换+枚举 )

题意: 有一个数n,问有多少个进制x(基数)使得n转换为x进制后的数字中只有3.4.5.6四个数. 算法: 对于只有一位数的情况,显然3.4.5.6都应该输出-1. 如果有2位数,假设这2位中高位为a,低位为b,进制为base,则 n = a * base + b,解一元一次方程即可. 如果有3位数,假设这3为从高到低分别为a.b.c,进制为base,则 n = a * base * base + b * base + c,即一元二次方程即可. 如果位数>= 4,可以暴力枚举进制数.base>

hdu 2665 Kth number(划分树)

Kth number Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4602 Accepted Submission(s): 1468 Problem Description Give you a sequence and ask you the kth big number of a inteval. Input The first l

hdu 3006 The Number of set(思维+壮压DP)

The Number of set Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1056    Accepted Submission(s): 655 Problem Description Given you n sets.All positive integers in sets are not less than 1 and

hdu 5787 K-wolf Number 数位dp

数位DP 神模板 详解 为了方便自己参看,我把代码复制过来吧 // pos = 当前处理的位置(一般从高位到低位) // pre = 上一个位的数字(更高的那一位) // status = 要达到的状态,如果为1则可以认为找到了答案,到时候用来返回, // 给计数器+1. // limit = 是否受限,也即当前处理这位能否随便取值.如567,当前处理6这位, // 如果前面取的是4,则当前这位可以取0-9.如果前面取的5,那么当前 // 这位就不能随便取,不然会超出这个数的范围,所以如果前面取

HUST 1343 Reverse Number(哈理工 亚洲区选拔赛前练习赛)

G - Reverse Number Time Limit:1000MS    Memory Limit:131072KB    64bit IO Format:%lld & %llu SubmitStatusPracticeHUST 1347 Description Given a non-negative integer sequence A with length N, you can exchange two adjacent numbers each time. After K exc

枚举 + 进制转换 --- hdu 4937 Lucky Number

Lucky Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 294    Accepted Submission(s): 49 Problem Description “Ladies and Gentlemen, It’s show time! ” “A thief is a creative artist who ta