用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
经測试,測试数据所有通过。