Advertisement
tuldok89

Roman Numeral

Sep 9th, 2011
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.21 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. void int2roman(int n);
  6.  
  7. int main()
  8. {
  9.     int input;
  10.     cout << "Roman Numeral Converter\n\n"
  11.         << "Enter a number: ";
  12.     cin >> input;
  13.  
  14.     int2roman(input);
  15.     return 0;
  16. }
  17.  
  18. void int2roman(int n)
  19. {
  20.     if (n >= 4000)
  21.         return;
  22.  
  23.     int thousands = n / 1000; // get the thousands digit
  24.     n = n % 1000;
  25.  
  26.     switch(thousands)
  27.     {
  28.     case 3:
  29.         cout << "MMM";
  30.         break;
  31.     case 2:
  32.         cout << "MM";
  33.         break;
  34.     case 1:
  35.         cout << "M";
  36.         break;
  37.     }
  38.  
  39.     int hundreds = n / 100; // get hundreds digit
  40.     n = n % 100;
  41.  
  42.     switch(hundreds)
  43.     {
  44.     case 9:
  45.         cout << "CM";
  46.         break;
  47.     case 8:
  48.         cout << "DCCC";
  49.         break;
  50.     case 7:
  51.         cout << "DCC";
  52.         break;
  53.     case 6:
  54.         cout << "DC";
  55.         break;
  56.     case 5:
  57.         cout << "D";
  58.         break;
  59.     case 4:
  60.         cout << "CD";
  61.         break;
  62.     case 3:
  63.         cout << "CCC";
  64.         break;
  65.     case 2:
  66.         cout << "CC";
  67.         break;
  68.     case 1:
  69.         cout << "C";
  70.         break;
  71.     }
  72.  
  73.     int tens = n / 10; // get ones digit
  74.  
  75.     switch(tens)
  76.     {
  77.     case 9:
  78.         cout << "XC";
  79.         break;
  80.     case 8:
  81.         cout << "LXXX";
  82.         break;
  83.     case 7:
  84.         cout << "LXX";
  85.         break;
  86.     case 6:
  87.         cout << "LX";
  88.         break;
  89.     case 5:
  90.         cout << "L";
  91.         break;
  92.     case 4:
  93.         cout << "XL";
  94.         break;
  95.     case 3:
  96.         cout << "XXX";
  97.         break;
  98.     case 2:
  99.         cout << "XX";
  100.         break;
  101.     case 1:
  102.         cout << "X";
  103.         break;
  104.     }
  105.  
  106.     int ones = n % 10; // get ones digit
  107.  
  108.     switch(ones)
  109.     {
  110.     case 9:
  111.         cout << "IX";
  112.         break;
  113.     case 8:
  114.         cout << "VIII";
  115.         break;
  116.     case 7:
  117.         cout << "VII";
  118.         break;
  119.     case 6:
  120.         cout << "VI";
  121.         break;
  122.     case 5:
  123.         cout << "V";
  124.         break;
  125.     case 4:
  126.         cout << "IV";
  127.         break;
  128.     case 3:
  129.         cout << "III";
  130.         break;
  131.     case 2:
  132.         cout << "II";
  133.         break;
  134.     case 1:
  135.         cout << "I";
  136.         break;
  137.     }
  138. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement