Задание.Для записи римскими цифрами употребляются символы I, V, X, L, С,
Задание.Для записи римскими цифрами употребляются знаки 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 lt;lt; "Водите числоlt;=3999";
cin gt;gt; ara;
while (ara gt; 0)
while (ArabZifr[i] gt; ara)
i -= 1;//убавляем
S = S + RomeZifr[i];
ara -= ArabZifr[i];
cout lt;lt; "Число=" lt;lt; S;
Может можно по иному?У меня она не работает.
include lt;stringgt;
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 lt; 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 lt;= 1000 amp;amp; divd gt; 100) divd-=100;
else if(divd lt;= 100 amp;amp; divd gt; 10) divd-=10;
else divd-=1;
return result;
int main()
int num,count;
cin gt;gt; num;
if(num lt;= 3999) cout lt;lt; solve(num,1000);
else cout lt;lt; "Incorrect input.";
return 0;
-
Вопросы ответы
Статьи
Информатика
Статьи
Математика.
Разные вопросы.
Разные вопросы.
Математика.
Разные вопросы.
Математика.
Физика.
Геометрия.
Разные вопросы.
Обществознание.