1044 火星數字

2021-09-29 05:22:32 字數 919 閱讀 4346

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

分析:題目要求輸入數字轉化為火星文,或者輸入火星文轉化為數字

從輸入樣例中可以看出,輸入資料型別與個數不可控,需要判斷

用空格判斷輸入資料個數,用第乙個輸入資料的型別來確定輸入型別

將火星文放在陣列中,對應下標是它們對應的數字

思路:使用string來讀取資料,%c讀取第乙個資料之後的空白符,確定是回車還是空格,再確定是否讀取第二個資料

若第乙個資料是數字,將其從字元轉化為數字,再對該數字求商和餘;

若商為0(沒有進製),直接輸出餘對應下標的字串;

若商不為0,先輸出商對應下標字串,再輸出餘對應字串,用空格隔開;

若商不為0而余為0,只輸出商對應下標的字串;

最後輸出換行符

若第乙個資料非數字,通過%c確定是否讀取第二個資料

若只有乙個資料,說明無高位,直接輸出其對應下標

若有兩個資料,分別找出下標,轉化為數字,輸出

**如下

#include

#include

using

namespace std;

//s1 0到12, s2 進製後的0到12

string s1[13]

=; string s2[13]

=;intmain()

}else

else

}int sum = a *

13+ b;

printf

("%d\n"

, sum);}

}}

反饋:

題不難,不過細節處理真費時間

字串轉數字的題也遇到好幾次了,該去了解一下相關函式了

1044 火星數字

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

1044 火星數字

時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 火星人是以13進製計數的 例如地球人的數字 29 翻譯成火星文就是 hel mar 而火星文 elo nov 對應地球數字 115 為了方便交流,請你編寫程式實現地球和火...

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,hei,elo,syy...