Другие языки программирования и технологии

Напишите программу, которая выводит запись переданного ей числа в римской системе счисления. Используйте процедуру. С++

думаю добавлять ничего не надо, только одно:
код, желательно попроще, и диапазон вводимого числа 1 <= N <= 3999
Нет в C++ процедур, только функции :)

#include "iostream"
#include "string"
using namespace std;
string ch(int d){
const string
on[]={"","I","II","III","IV","V","VI","VII","VIII","IX"},
te[]={"","X","XX","XXX","XL","L","LX","LXX","LXXX","XC"},
hu[]={"","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"},
th[]={"","M","MM","MMM","MMMM"};
return th[d/1000]+hu[d/100%10]+te[d/10%10]+on[d%10];}
int main(){int d; cin>>d; cout<<ch(d)<<endl;}
НЩ
Никита Щербаков
78 894
Лучший ответ
Андрей Рябов спасибо за помощь, но можешь немного объяснить все функции и почему писать так
Jscript

function combine(romanbase, romanfifth, romantenth, quantity)
{
switch(quantity)
{
case 0:
return "";
case 1:
return romanbase;
case 2:
return romanbase + romanbase;
case 3:
return romanbase + romanbase + romanbase;
case 4:
return romanbase + romanfifth;
case 5:
return romanfifth;
case 6:
return romanfifth + romanbase;
case 7:
return romanfifth + romanbase + romanbase;
case 8:
return romanfifth + romanbase + romanbase + romanbase;
case 9:
return romanbase + romantenth;
}
}

var thousands = Math.floor(dec/1000);
res += combine("M", "", "", thousands);
dec = dec - 1000*thousands;

var hundreds = Math.floor(dec/100);
res += combine("C", "D", "M", hundreds);
dec = dec - 100*hundreds;

var tenths = Math.floor(dec/10);
res += combine("X", "L", "C", tenths);
dec = dec - 10*tenths;

res += combine("I", "V", "X", dec);

на C++ самостоятельно
Андрей Замятин
Андрей Замятин
81 955
R = ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'III', 'II', 'I']

A = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 3, 2, 1]

a = int(input())

res = ''

while a:

while a >= A[0]:

a -= A[0]

res += R[0]

R.pop(0)

A.pop(0)

Похожие вопросы