生活随笔
收集整理的這篇文章主要介紹了
PTA乙级1044
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1044
火星人是以 13 進(jìn)制計(jì)數(shù)的:
地球人的 0 被火星人稱為 tret。
地球人數(shù)字 1 到 12 的火星文分別為:jan, feb, mar, apr, may, jun, jly, aug, sep, oct, nov, dec。
火星人將進(jìn)位以后的 12 個(gè)高位數(shù)字分別稱為:tam, hel, maa, huh, tou, kes, hei, elo, syy, lok, mer, jou。
例如地球人的數(shù)字 29 翻譯成火星文就是 hel mar;而火星文 elo nov 對(duì)應(yīng)地球數(shù)字 115。為了方便交流,請(qǐng)你編寫程序?qū)崿F(xiàn)地球和火星數(shù)字之間的互譯。
輸入格式:
輸入第一行給出一個(gè)正整數(shù) N(<100),隨后 N 行,每行給出一個(gè) [0, 169) 區(qū)間內(nèi)的數(shù)字 —— 或者是地球文,或者是火星文。
輸出格式:
對(duì)應(yīng)輸入的每一行,在一行中輸出翻譯后的另一種語言的數(shù)字。
輸入樣例:
4
29
5
elo nov
tam
輸出樣例:
hel mar
may
115
13
思路:這題搞了半天只有大致思路不會(huì)寫,將火星文低高位分別放入數(shù)組,先判斷是火星文還是地球文,如果是地球文低位數(shù)字求余13,高位除以13得到火星文的索引,如果是火星文高位索引乘13加上低位索引得到地球文
附上別人的代碼:
package test1
;import java
.io
.BufferedReader
;
import java
.io
.IOException
;
import java
.io
.InputStreamReader
;
import java
.util
.Scanner
;public class PTA1044 {public static void main(String
[] args
) throws IOException
{BufferedReader in
=new BufferedReader(new InputStreamReader(System
.in
));String
[]a
={"tam","hel" , "maa", "huh", "tou", "kes", "hei", "elo", "syy", "lok", "mer", "jou"};String
[]b
={"jan", "feb", "mar", "apr", "may", "jun", "jly", "aug","sep" ,"oct", "nov", "dec"};int N
=Integer
.parseInt(in
.readLine());for (int i
= 0; i
< N
; i
++) {String s
= in
.readLine();int r
= 0;int a1
,a2
;if (s
.matches("[0-9]{1,}")) {r
=Integer
.valueOf(s
);if (r
==0) {System
.out
.println("tret");continue;}if (r
<13) {a1
= r
%13;System
.out
.println(b
[a1
-1]);}if (12<r
&&r
<169) {a2
= r
/13;a1
= r
-a2
*13;if (a1
==0) {System
.out
.println(a
[a2
-1]);}else {System
.out
.println(a
[a2
-1]+" "+a
[a1
-1]);}}}else{if (s
.equals("tret")) {System
.out
.println(0);continue;}String
[] split
= s
.split(" ");if (split
.length
!=1) {a1
= getIndex(b
, split
[1]);a2
= getIndex(a
, split
[0]);System
.out
.println(a2
*13+a1
);}else {a1
= getIndex(b
, split
[0]);a2
= getIndex(a
, split
[0]);if (a1
!=0) {System
.out
.println(a1
);}else {System
.out
.println(a2
*13);}}}}}public static int getIndex(String
[] arr
,String value
){for (int i
= 0; i
< arr
.length
; i
++) {if (arr
[i
].equals(value
)) {return i
+1;}}return 0;}
}
總結(jié)
以上是生活随笔為你收集整理的PTA乙级1044的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。