Есть ответ 👍

Для записи римскими цифрами используются символы i, v, x, l, с, d, м, обозначающие соответственно числа 1, 5, 10, 50, 100, 500, 1000. составить программу, которая запись любого данного числа п (п ≤ 3999) арабскими цифрами переводила бы в запись римскими цифрам. на с++. string romezifr[13] = { "i","iv","v","ix","x","xl","l","xc","c","cd","d","cm","m" }; int arabzifr[13] = { 1,4,5,9,10,40,50,90,100,400,500,900,1000 }; int ara,i=13; //iдля цикла string s=" "; //s=для вывода числа на роме cout < < "ведите число< =3999"; cin > > ara; while (ara > 0) { while (arabzifr[i] > ara) i -= 1; //уменьшаем s = s + romezifr[i]; ara -= arabzifr[i]; } cout < < "число=" < < s; может можно по другому? у меня она не работает.

200
231
Посмотреть ответы 3

Ответы на вопрос:

amaii
4,5(6 оценок)

#include < iostream> #include < string> using namespace std; string solve(int num, int divd) {       string result = "";       int count = 0;       while(num)       {               count = num / divd;               if(count)               {                       num %= divd;                       for (int i = 0; i < count; i++)                               switch(divd)                               {                                       case 1000:                                       {                                               result+="m";                                               break;                                       }                                       case 900:                                       {                                               result+="cm";                                               break;                                       }                                       case 800:                                       {                                               result+="dcc";                                               break;                                       }                                       case 700:                                       {                                               result+="dcc";                                               break;                                       }                                       case 600:                                       {                                               result+="dc";                                               break;                                       }                                       case 500:                                       {                                               result+="d";                                               break;                                       }                                       case 400:                                       {                                               result+="cd";                                               break;                                       }                                       case 300:                                       {                                               result+="ccc";                                               break;                                       }                                       case 200:                                       {                                               result+="cc";                                               break;                                       }                                       case 100:                                       {                                               result+="c";                                               break;                                       }                                       case 90:                                       {                                               result+="xc";                                               break;                                       }                                       case 80:                                       {                                               result+="lxxx";                                               break;                                       }                                       case 70:                                       {                                               result+="lxx";                                               break;                                       }                                       case 60:                                       {                                               result+="lx";                                               break;                                       }                                       case 50:                                       {                                               result+="l";                                               break;                                       }                                       case 40:                                       {                                               result+="xl";                                               break;                                       }                                       case 30:                                       {                                               result+="xxx";                                               break;                                       }                                       case 20:                                       {                                               result+="xx";                                               break;                                       }                                       case 10:                                       {                                               result+="x";                                               break;                                       }                                       case 9:                                       {                                               result+="ix";                                               break;                                       }                                       case 8:                                       {                                               result+="viii";                                               break;                                       }                                       case 7:                                       {                                               result+="vii";                                               break;                                       }                                       case 6:                                       {                                               result+="vi";                                               break;                                       }                                       case 5:                                       {                                               result+="v";                                               break;                                       }                                       case 4:                                       {                                               result+="iv";                                               break;                                       }                                       case 3:                                       {                                               result+="iii";                                               break;                                       }                                       case 2:                                       {                                               result+="ii";                                               break;                                       }                                       case 1:                                       {                                               result+="i";                                               break;                                       }                               }               }               if(divd < = 1000 & & divd > 100) divd-=100;               else if(divd < = 100 & & divd > 10) divd-=10;               else divd-=1;       }       return result; } int main() {       int num,count;       cin > > num;       if(num < = 3999) cout < < solve(num,1000);       else cout < < "incorrect input.";       return 0; }

#include< iostream> #include< string> using std: : string; string func(int num, string, string, string); int main(int argc, char argv[]) {     system("chcp 1251> 0");     std: : cout < < "введите число не большее 3999: ";       int arabien_num;       if : : cin > > arabien_num) || (arabien_num > 3999)) {         std: : cerr < < "невозможно инициализировать число! " < < std: : endl;         exit(1);     }       std: : string rome_num;       rome_num += func(arabien_num / 1000, "", "", "m");     arabien_num %= 1000;     rome_num += func(arabien_num / 100, "m", "d", "c");     arabien_num %= 100;     rome_num += func(arabien_num / 10,   "c", "l", "x");     arabien_num %= 10;     rome_num += func(arabien_num ,   "x", "v", "i");     std: : cout < < rome_num < < std: : endl;     return 0; } string func(int num, string hi, string re, string lo) {     switch(num)     {         case 9:             return lo + hi;         case 8:             return re + lo + lo + lo;         case 7:             return re + lo + lo;         case 6:             return re + lo;         case 5:             return re;         case 4:             return lo + re;         case 3:             return lo + lo + lo;         case 2:             return lo + lo;         case 1:             return lo;         case 0:             return "";     } }
elinatyul
4,8(46 оценок)

На 18-й   524  140 д за 18 лет получил 1048113

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS