張老師需要用數字來統計學生們的得分情況,但阿拉伯數字已經不能滿足他的要求了,所以想請你幫忙將學生的成績轉換成羅馬數字。
羅馬數字是由七個不同的符號來表示(i,v,x,l,c,d和m),其中每個符號對應的值如下表
符號 值
i 1
v 5
x 10
l 50
c 100
d 500
m 1000
羅馬數字通常從左到右從最大寫到最小,表示他們的總和。但是,數字4的羅馬數字表示不是iiii,而是iv,表示5-1=4。同樣的,有6個應用相同原理的規則:
i可以放在v(5)和x(10)之前代表4和9。
x可以在l(50)和c(100)之前代表40和90。
c可以放在d(500)和m(1000)之前代表400和900。
現在給定乙個整數,張老師請你計算出其羅馬數字的表示。
第一行乙個整數x(1<=x<=2000)
輸出一行,表示整數x所對應的羅馬數字表示示例1
複製
5複製
v示例2
複製
1926複製
mcmxxvi這道題是乙個典型的字串處理
下面看**
#include #include char str[5],num[20];//str儲存輸入的數,num儲存輸出的數
int t=0;//用來將資料結果記入num;
void ffour(int x)//處理在數字為4上的數
void fthree(int x)//處理在數字為3上的數
else if(x==4)
else if(x==5)
num[t++]='d';
if(x>5&&x<9)
if(x==9)
return ;
}void ftwo(int x)//處理在數字為2上的數
else if(x==4)
else if(x==5)
num[t++]='l';
if(x>5&&x<9)
if(x==9)
return ;
}void fone(int x)//處理在數字為1上的數
else if(x==4)
else if(x==5)
num[t++]='v';
if(x>5&&x<9)
if(x==9)
return ;
}void a(int m,int x)
int main()
num[t]='\0';//最後結尾
printf("%s\n",num);
return 0;
}
牛客網 A 張老師數數
problem description 張老師需要用數字來統計學生們的得分情況,但阿拉伯數字已經不能滿足他的要求了,所以想請你幫忙將學生的成績轉換成羅馬數字。羅馬數字是由七個不同的符號來表示 i,v,x,l,c,d和m 其中每個符號對應的值如下表 符號 值 i 1 v 5 x 10 l 50 c 1...
張老師的期待
希望畢業後,學生的技能 1 linux 多門課程需要,盡早引導自學,目前設想大一下學期由研究生業餘時間組織學習 掌握命令 指令碼程式設計 服務配置 系統管理等 2 程式設計 組合語言 熟悉一種組合語言,有 彙編 思想 純c 建議直接採用gcc教學,c 可依興趣自學 資料結構 作業系統核心程式設計 熟...
張老師的旅行
張老師的旅行 題解 區間dp。區間dp的基本解題方法 列舉長度 列舉起點 那麼終點根據長度也就知道了 列舉分割點 但是本題並不需要列舉分割點,因為需要花費時間最短一定,那麼一定是從所列舉的區間的一邊一直走到另一邊,那麼是從左走到右還是從右走到左呢,這時我們就想到了dp開一維來放0,1,其中0表示從右...