PAT(乙級) 1044 火星數字

2021-10-02 13:49:56 字數 853 閱讀 6660

火星人是以 13 進製計數的:

例如地球人的數字29翻譯成火星文就是hel mar;而火星文elo nov對應地球數字115。為了方便交流,請你編寫程式實現地球和火星數字之間的互譯。

輸入第一行給出乙個正整數 n(<100),隨後 n 行,每行給出乙個 [0, 169) 區間內的數字 —— 或者是地球文,或者是火星文。

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

4295

elo nov

tam

hel mar

may115

13

本題最大的坑在於 如果乙個數是13的倍數,那麼它的火星文只有高位,而沒有低位的tret。反過來也是,如果乙個火星文只有乙個單詞,那這個單詞既可能是高位,也可能是低位。所以本題的情況很複雜,邏輯處理需非常小心,最好放到兩個函式中。

這個題我錯了好幾次,主要是因為換行的輸出有問題。因為在火星文轉數字中,不一定會有低位輸出,而我的換行就直接寫在了低位之後,導致這個換行有時候就無法輸出。最後我將每乙個例子的換行都放到了函式外輸出,通過了。

首先說數字轉火星文。如果這個數大於13,那他的火星文一定有高位,但不一定有低位,如果小於13,則一定只有低位。所以我們就先判斷是否有高位。有高位則輸出高位,然後判斷如果低位不為0,則輸出低位。如果沒有高位,則只輸出低位。結合**來理解:

if(num/13)

;string high=;

void fun1(string s)

return 0;

}

PAT 乙級 1044 火星數字

時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 火星人是以13進製計數的 例如地球人的數字 29 翻譯成火星文就是 hel mar 而火星文 elo nov 對應地球數字 115 為了方便交流,請你編寫程式實現地球和火...

PAT 乙級 1044 火星數字

火星人是以 13 進製計數的 地球人的 0 被火星人稱為 tret。地球人數字 1 到 12 的火星文分別為 jan,feb,mar,apr,may,jun,jly,aug,sep,oct,nov,dec。火星人將進製以後的 12 個高位數字分別稱為 tam,hel,maa,huh,tou,kes,...

PAT乙級 1044 火星數字

火星人是以 13 進製計數的 地球人的 0 被火星人稱為 tret。地球人數字 1 到 12 的火星文分別為 jan,feb,mar,apr,may,jun,jly,aug,sep,oct,nov,dec。火星人將進製以後的 12 個高位數字分別稱為 tam,hel,maa,huh,tou,kes,...