zoukankan      html  css  js  c++  java
  • pat 1044.火星数字 Java版

    个人网站:https://www.lingluan.xyz
    火星人是以13进制计数的:

    地球人的0被火星人称为tret。
    地球人数字1到12的火星文分别为:jan, feb, mar, apr, may, jun, jly, aug, sep, oct, nov, dec。
    火星人将进位以后的12个高位数字分别称为:tam, hel, maa, huh, tou, kes, hei, elo, syy, lok, mer, jou。
    例如地球人的数字“29”翻译成火星文就是“hel mar”;而火星文“elo nov”对应地球数字“115”。为了方便交流,请你编写程序实现地球和火星数字之间的互译。

    输入格式:

    输入第一行给出一个正整数N(<100),随后N行,每行给出一个[0, 169)区间内的数字 —— 或者是地球文,或者是火星文。

    输出格式:

    对应输入的每一行,在一行中输出翻译后的另一种语言的数字。

    输入样例:
    4
    29
    5
    elo nov
    tam
    输出样例:
    hel mar
    may
    115
    13

    我的思路就是通过判断输入的字符串的第一个字符是否是字母来判别他是数字还是火星字,如果是火星字 在判断是否有空格 如果有分别在数组里对应查找匹配 然后 进位数*13+低位数 就是地球数字了

    如果数字大于13 :火星数字的高位为 数字/13 低位为数字%13
    等于13 或者等于13的倍数要注意不要输出低位的零了!
    如果小于13则对应输出就行了

    import java.io.BufferedInputStream;
    import java.util.Scanner;

    public class Main1044 {

    public static void main(String[] args) {
    	Scanner scan = new Scanner(new BufferedInputStream(System.in));
    	int N= scan.nextInt();
    	if(N>=100){
    		return;
    	}
    	String input = "";
    	String a[] ={"tret","jan", "feb", "mar", "apr", "may", "jun", "jly", "aug", "sep", "oct", "nov", "dec"};
    	String b [] ={"tret","tam", "hel", "maa", "huh", "tou", "kes", "hei", "elo", "syy", "lok", "mer", "jou"};
    	int jinwei=0;
    	int diwei =0;
    	int temp;
    	scan.nextLine();
    	String inputs[]=new String[2];
    	for(int i=0;i<N;i++){
    		input=scan.nextLine();
    		if(input.charAt(0)-'a'>=0 && input.charAt(0)-'a'<=25){
    			if(input.contains(" ")){
    				inputs=input.split(" ");
    				for(int j=0;j<=12;j++){
    					if(b[j].equals(inputs[0])){
    						jinwei = j*13;
    						
    					}if(a[j].equals(inputs[1])){
    						diwei= j;
    					}
    				}
    				System.out.println(jinwei+diwei);
    			}else{
    				for(int j=0;j<b.length;j++){
    					if(a[j].equals(input)){
    						System.out.println(j);
    						break;
    					}if(b[j].equals(input)){
    						System.out.println(j*13);
    						break;
    					}else if(j==b.length-1){
    						System.out.println(13);
    					}
    				}
    			}
    		}else{
    			temp=Integer.parseInt(input);
    			if(temp>=169){
    				return;
    			}else if(temp>=0&&temp<13){
    				System.out.println(a[temp]);
    			}else{
    				jinwei = temp/13;
    				diwei = temp % 13;
    				if(diwei==0){
    					System.out.println(b[jinwei]);
    				}else{
    					System.out.println(b[jinwei]+" "+a[diwei]);
    				}
    			}
    		}
    	}
    }
    

    }

  • 相关阅读:
    How to debug with IntelliJ IDEA + Grails 2.3.x (转)
    Lucene教程具体解释
    html中滚动栏的样式
    centos下ant的安装
    qt的资源替换搜索QDir具体解释
    strtok和strtok_r
    文件读写、游标
    Rational Rose 2007 &amp;Rational Rose 2003 下载及破解方法和汉化文件下载
    算法6-5:哈希表应用之集合
    javaEE jdbc编程步骤
  • 原文地址:https://www.cnblogs.com/lingluan533/p/12537316.html
Copyright © 2011-2022 走看看