Хелпикс

Главная

Контакты

Случайная статья





Контрольный пример. Задание 4.4.8. Текст программы. Контрольный пример



Контрольный пример

Задание 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;

}

Контрольный пример

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.