Guest User

Untitled

a guest
Jul 3rd, 2013
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.39 KB | None | 0 0
  1. void rome2arab(string r) {
  2.     int d = 0, i;
  3.     for (i = 0; i < r.length()-1; i++) {
  4.         //Обрабатываем исключения
  5.         if (r.compare(i, 2, "CM") == 0) {d += 900; i += 2; continue;}
  6.         if (r.compare(i, 2, "CD") == 0) {d += 400; i += 2; continue;}
  7.         if (r.compare(i, 2, "XC") == 0) {d += 90; i += 2; continue;}
  8.         if (r.compare(i, 2, "XL") == 0) {d += 40; i += 2; continue;}
  9.         if (r.compare(i, 2, "IX") == 0) {d += 9; i += 2; continue;}
  10.         if (r.compare(i, 2, "IV") == 0) {d += 4; i += 2; continue;}
  11.         //Если не попалось исключение, то просто прибавляем
  12.         if (r.at(i) == 'M') d += 1000;
  13.         if (r.at(i) == 'L') d += 500;
  14.         if (r.at(i) == 'C') d += 100;
  15.         if (r.at(i) == 'L') d += 50;
  16.         if (r.at(i) == 'X') d += 10;
  17.         if (r.at(i) == 'V') d += 5;
  18.         if (r.at(i) == 'I') d += 1;
  19.     }
  20.     //Так как цикл идёт до предпроследнего символа, сравниваем последние символы
  21.     if (r.at(r.length()) == 'M') d += 1000;
  22.     if (r.at(r.length()) == 'L') d += 500;
  23.     if (r.at(r.length()) == 'C') d += 100;
  24.     if (r.at(r.length()) == 'L') d += 50;
  25.     if (r.at(r.length()) == 'X') d += 10;
  26.     if (r.at(r.length()) == 'V') d += 5;
  27.     if (r.at(r.length()) == 'I') d += 1;
  28.  
  29.     cout << d << endl;
  30. }
Advertisement
Add Comment
Please, Sign In to add comment