昨天微軟MSN在南大的筆試題,稍後貼出我的答案

羅馬數字共有七個,即 I(1),V(5),X(10),L(50),C(100),D(500),M(1000)。

按照下面三條規則可以表示任意正整數。

重複數次:一個羅馬數字重複幾次,就表示這個數的幾倍。

右加左減:在一個較大的羅馬數字的右邊記上一個較小的羅馬數字, 表示大數字加小數字。在一個較大的數字的左邊記上一個較小的羅 馬數字,表示大數字減小數字。但是,左減不能跨越等級。 比如,99不可以用IC表示,用XCIX表示

基本數字Ⅰ、X 、C 中的任何一個,自身連用構成數目,或者放在大數的右邊連用構成數目,都不能超過三個,比如40不能用XXXX,而用XL表示

設計一個函數,將100(包括100)以內的整數轉換成羅馬數字,超過100不考慮int itor(int n,char* buf,int bufLength)其中,n是要轉換的整數,buf是要輸出的字元串,bufLength是buf的字元長度成功,返回0,否則,返回 -1;

比如:char buf[256];result = itor(n,buf,sizeof(buf));

when n = 28; result = 0, 輸出"XXVIII";when n = 72; result = 0, 輸出"LXXII";


推薦閱讀:

入菩薩行論·善說海第六品思考題答案499--571
男人為什麼都愛有夫之婦?這3個驚人答案,絕對解你的疑惑!
不要總說對方錯,你才是問題的答案
《我的前半生》給不了你答案,亦舒更給不了
夢知道答案

TAG:筆試 | 答案 | 微軟 | 筆試題 |