fork download
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. public class RomanNumeralUtility
  5. {
  6. private static Dictionary<char, int> RomanMap = new Dictionary<char, int>()
  7. {
  8. {'I', 1},
  9. {'V', 5},
  10. {'X', 10},
  11. {'L', 50},
  12. {'C', 100},
  13. {'D', 500},
  14. {'M', 1000}
  15. };
  16.  
  17. public static void Main()
  18. {
  19. string[] inputList = {
  20. "i", "ii", "iii", "iv", "v", "vi", "vii", "viii", "ix", "x",
  21. "xi", "xii", "xiii", "xiv", "xv", "xvi", "xvii", "xviii", "xix", "xx",
  22. "xxi", "xxii", "xxiii", "xxiv", "xxv", "xxvi", "xxvii", "xxviii", "xxix", "xxx",
  23. "xxxi", "xxxii", "xxxiii", "xxxiv", "xxxv", "xxxvi", "xxxvii", "xxxviii", "xxxix", "xl",
  24. "xli", "xlii", "xliii", "xliv", "xlv", "xlvi", "xlvii", "xlviii", "xlix", "l" };
  25. foreach (string numeral in inputList)
  26. {
  27. Console.WriteLine(RomanToInteger(numeral));
  28. }
  29. }
  30.  
  31. public static int RomanToInteger(string roman)
  32. {
  33. roman = roman.ToUpper();
  34. int number = 0;
  35. for (int i = 0; i < roman.Length; i++)
  36. {
  37. if (i + 1 < roman.Length && RomanMap[roman[i]] < RomanMap[roman[i + 1]])
  38. {
  39. number -= RomanMap[roman[i]];
  40. }
  41. else
  42. {
  43. number += RomanMap[roman[i]];
  44. }
  45. }
  46. return number;
  47. }
  48. }
Success #stdin #stdout 0.03s 15152KB
stdin
Standard input is empty
stdout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50