1044 火星數字 20 分 測試點 1 4

2021-09-21 07:04:40 字數 1299 閱讀 6331

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

輸出格式:

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

輸入樣例:429

5elo nov

tam輸出樣例:

hel mar

may115

13測試點1的問題在於輸入0的時候的翻譯,之前我的**在輸入數字的時候

對轉換成13進製的個位和十位做過控制,都是以0為界,大於0就輸出,小於等於0就不輸出,如(13 130這種13的倍數,個位就不輸出這也是測試點4的卡點出)所以在0這個地方要特殊處理

#include#include//定義兩個二位全域性變數陣列,存放對應的字元。 

char gewei [13][5]=;

char gaowei [13][4]=;

void huoxinhua(char*str)//數碼化成火星文 ,先將字元數字翻譯成整數型

gaowei=sum/13;//高位大小是sum對13整除,取整數部分

gewei=sum%13;//取餘數

//下面這一塊就是題目設定的幾個卡點,我說不清楚,自己體會吧。

if(gaowei)//高位不等於0

if(gewei)

printf("%s\n",gewei[gewei]);

}void shuzihua(char*str)//分乙個字和兩個字

else if(!(strcmp(dier,gaowei[i])))

sum=13*i;

} printf("%d\n",sum);

} else//有兩個字

for(i=1;i<13;i++)

printf("%d\n",sum); }}

int main()

return 0;

}

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