|
|||
Контрольный пример. Задание 4.4.8. Текст программы. Контрольный пример ⇐ ПредыдущаяСтр 2 из 2 Контрольный пример
Задание 4.4.8 Сложить два числа, записанных римскими цифрами. Числа не должны превышать 2000. Например, для XXI+XLIX напечатать LXX. Текст программы #include <iostream> #include <string>
using namespace std;
const string ed[] = { "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "" }; const string des[] = { "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC" }; const string sot[] = { "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM" }; const string tis[] = { "M" };
string schet(int n) { string res; if (n == 2000) { res = "MM"; }
if ((n %= 2000) > 0) { if (n / 1000 > 0) { res = tis[n / 1000 - 1]; }
if (n / 100 > 0) { res = res + sot[n / 100 - 1]; }
if ((n %= 100) > 0) { if (n < 20 && n != 10) { res = res + ed[n - 1]; } else { if (n / 10 > 0) res = res + des[n / 10 - 1]; if ((n %= 10) > 0) res = res + ed[n - 1]; } } } return res; }
int main() { system("chcp 1251"); int nomer = 0, a, b;
cout << "Введите первое число:"; cin >> a; cout << "Введите второе число:"; cin >> b; nomer = a+b; cout << "Результат (Арабские) : " << nomer << endl; cout << "Результат (Римские) : " << schet(nomer) << endl; system("Pause"); return 0; } Контрольный пример
|
|||
|