用C#寫一個RomanNumbers的控制臺程序,提供基本羅馬數字到十進制數的映射關系,然后給出一些約束,然后對于1到5000的十進制整數,能轉換成相應的羅馬數字。
基本羅馬數字和十進制數的對應關系
I??????????????????????? 1
V?????????????????????? 5
X????????????????????? 10
L?????????????????????? 50
C????????????????????? 100
D????????????????????? 500
M????????????????????? 1000
約束
1. 如果一個代表數字小的字母放在代表數字大的字母的前面,則表示減法,例如CM就表示900
2. 一個字母最多只能重復3次
程序
~~~
public static string ConvertDecimalToRoman(int number)
{
int[] decArray = {1000,900,500,400,100,90,50,40,10,9,5,4,1};
string[] romAarry = { "M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I" };
int i = 0;
string output = "";
while (number > 0)
{
while (number >= decArray[i])
{
number = number - decArray[i];
output = output + romAarry[i];
}
i++;
}
return output;
}
~~~
測試數據
7??????????????????????? VII
1981???????????????? MCMLXXXI
99???????????????????? XCIX
700?????????????????? DCC
經測試,測試數據全部通過。