羅馬數字 | ||||||
|
||||||
Description | ||||||
給定一個正的十進制數n(1<=n<=3999),將其轉換成羅馬數字。 羅馬數字的規則是由7個基本數字組成: I:1 V:4 X:10 L:50 C:100 D:500 M:1000 如果你要表示9或4的時候,在符號10或5前加一個1的符號表示減去1,表示40、90和900時也類似。 例如:1 I 2 II 3 III 4 IV 5V 6 VI 9 IX 10 X 14 XIV 22 XXII 40 XL 900 CM 1000 M 1666 MDCLXVI 3000 MMM |
||||||
Input | ||||||
多組測試數據處理到文件末,每組數據爲一個正整數n(1<=n<=3999) |
||||||
Output | ||||||
輸出爲一行,輸出羅馬數字。 |
||||||
Sample Input | ||||||
3 1666 |
||||||
Sample Output | ||||||
III MDCLXVI |
||||||
Source |
#include<stdio.h>
#include<string.h>
#include<string>
#include<iostream>
#include<algorithm>
using namespace std;
string Num4[10]={"M","MM","MMM"};
string Num3[10]={"C","CC","CCC","CD","D","DC","DCC","DCCC","CM"};
string Num2[10]={"X","XX","XXX","XL","L","LX","LXX","LXXX","XC"};
string Num1[10]={"I","II","III","IV","V","VI","VII","VIII","IX"};
int main()
{
int n;
while(~scanf("%d",&n))
{
int num4=n/1000;
n%=1000;
int num3=n/100;
n%=100;
int num2=n/10;
n%=10;
int num1=n%10;
if(num4)
{
cout<<Num4[num4-1];
}
if(num3)
{
cout<<Num3[num3-1];
}
if(num2)
{
cout<<Num2[num2-1];
}
if(num1)
{
cout<<Num1[num1-1];
}
cout<<endl;
}
}