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