1044 火星數字 20分

2022-09-01 20:18:11 字數 1432 閱讀 5577

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

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

在一行中輸出出現頻率最高的那個英文本母及其出現次數,其間以空格分隔。如果有並列,則輸出按字母序最小的那個字母。統計時不區分大小寫,輸出小寫字母。

輸入格式

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

輸出格式

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

輸入樣例:

4295

elo nov

tam

輸出樣例:

hel mar

may115

13

先讀乙個字串,如果第一位是數字,則轉為火星文,否則就是火星文轉數字,這裡數字最大168,13進製最多2位數

數字轉火星文,先atoi(),變成整數再轉換為13進製(除基取餘法),儲存在b陣列裡,最多兩位b[0] b[1],如果b[1]>0,說明有兩位火星文,如果b[0]是0的話,說明數字為13的倍數,變成火星文就是tam hel..等高位數,題目要求是不再輸出整13後邊的0,要及時退出,只輸出高位即可。如果b[0]>0,就不退出繼續往下輸出low[b[0]],如果b[1] == 0的話,說明只有一位火星文,這一位一定是低位,只輸出low[b[0]]

火星文轉數字,用getline()讀取後邊的輸入,當輸入一位火星文的時候,讀取的是空行,然後將兩個火星文s1,s2和low,high依次比較,其中s1可能是低位、高位,s2只能是低位,對應求和 高位*13 + 低位就完成火星文的轉換

#include#include#include#include#includeusing namespace std;

char low [14][5];

char high[14][5];

int main() ,k=0,flag = 1;

char s1[10],s2[10];

memset(s2,0,sizeof(s2));

cin >> s1;

if (s1[0] >= '0' && s1[0] <= '9')

if(flag)

if(strcmp(s1,high[i]) == 0)

}cout << a + c <0)

if(b[1])else

}cout << low[b[0]] << endl ;}}

}

1044 火星數字 (20 分)

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

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,...

1044 火星數字 20 分

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