PAT乙級練習題B1044 火星數字

2021-07-14 17:38:54 字數 1396 閱讀 5745

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

輸出格式:

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

輸入樣例:

4 29

5 elo nov

tam

輸出樣例:

hel mar

may

115

13注意一下,這裡數字的取值範圍為[0,169),即只有兩位13進製數,我沒注意,弄複雜了。

注意cin和getline之間需要加乙個空的getchar(),這樣第乙個getline才會正確的執行。

注意如果是13的整數末位tret不顯示。

#include

#include

#include

#include

#include

using

namespace

std;

int main()

; vector

mars2 = ;

for (int i = 0; i < 13; ++i)

for (int i = 0; i < 12; ++i)

cin >> n;

getchar();

for (int i = 0; i < n; ++i)

vector

mars_out;

dowhile (earth);

string out;

for (int j = 0; j < mars_out.size(); ++j)

out = mars1[mars_out[j]];

}else

else}}

cout

<< out << endl;

}else

earth += dig*pow(13, p++);

}cout

<< earth << endl;}}

system("pause");

return

0;}

B1044 火星數字

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

B1044 火星數字(python)

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

b1044 火星數字 20 分

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