B1044 火星數字(python)

2021-10-04 14:37:27 字數 1433 閱讀 7905

1044 火星數字 (20分)

火星人是以 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) 區間內的數字 —— 或者是地球文,或者是火星文。

輸出格式:

對應輸入的每一行,在一行中輸出翻譯後的另一種語言的數字。

輸入樣例:429

5elo nov

tam輸出樣例:

hel mar

may115

13ac

將翻譯火星文的部分寫成乙個函式既簡便又清爽~?

for i in

range

(int

(n))

:input()

.strip())

deftrans

(n):

'''翻譯火星文'''

for key in low:

if low[key]

== n:

return key

for key in high:

if high[key]

== n:

return key *

13for s in nums:

if s.isnumeric():

ifint

(s)<13:

print

(low[

int(s)%13

])elif

int(s)%13

==0:# 能夠被13整除,只輸出high

print

(high[

int(s)

//13])

else

:print

(high[

int(s)

//13

], low[

int(s)%13

])else:if

len(s)

>4:

# 此處要注意,如果是tret是不止三位的

a, b = s.split(

)print

(trans(a)

+ trans(b)

)else

:print

(trans(s)

)

B1044 火星數字

1044 火星數字 20 分 火星人是以 13 進製計數的 例如地球人的數字 29 翻譯成火星文就是 hel mar 而火星文 elo nov 對應地球數字 115。為了方便交流,請你編寫程式實現地球和火星數字之間的互譯。輸入格式 輸入第一行給出乙個正整數 n 100 隨後 n 行,每行給出乙個 0...

b1044 火星數字 20 分

火星人是以 13 進製計數的 例如地球人的數字29翻譯成火星文就是hel mar 而火星文elo nov對應地球數字115。為了方便交流,請你編寫程式實現地球和火星數字之間的互譯。輸入第一行給出乙個正整數 n 100 隨後 n 行,每行給出乙個 0,169 區間內的數字 或者是地球文,或者是火星文。...

PAT乙級練習題B1044 火星數字

火星人是以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...