PAT乙級 1044 火星數字

2021-10-04 22:47:16 字數 1514 閱讀 4312

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

輸出格式:

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

輸入樣例:

4295

elo nov

tam

輸出樣例:

hel mar

may115

13

注意事項:

十進位制中,20的低位0必須表示出來,而火星文字中低位"tret"不需要表示出來

注意空格的輸出形式(輸出多餘空格會報錯)

我用了map打表的方式,省去計算轉換的步驟

c++11中的stoi()可以將字串轉換為十進位制,但是我的編譯器不支援,為了測試,寫了strtonum()函式

我的**:

#include

#include

#include

#include

#include

using

namespace std;

mapint>high,low;

//給出字串對應的數字

map<

int,string>higher,lower;

//數字對應的字串

intstrtonum

(string s)

return sum;

}void

todeal

(string s)

if(low[str]!=0

)}cout<}int

main()

int gao=num/13;

int di=num%13;

if(gao>0)

else

}else}if

(isalpha

(s[0])

)}return0;

}

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