please use simple c++ since i am taking the first course of c++ Problem 2: (Roma
ID: 3591567 • Letter: P
Question
please use simple c++ since i am taking the first course of c++
Problem 2: (Roman numerals) Write a program that converts an integer between 1 and 3999 into Roman numerals. The input and output should be exactly: Input a number in Arabic numerals: USER ENTERS AN INTEGER BETWEEN 1 AND 39991 xXxxxx is your Use the "standard form" described in: https://en.wikipedia.org/wiki/Roman_numerals Assume the input is indeed between 1 and 3999. You may not use any libraries aside from iostreanm and string. Name your file roman. cpp. Hint. Treat each decimal digit separately (i.e., do the thousands, hundreds, tens, and ones sepa- rately) and concatenate the results.Explanation / Answer
code id below
five thumbs up if you like it
#include <bits/stdc++.h>
#include <iostream>
using namespace std;
int sub_digit(char num1, char num2, int i, char *c)
{
c[i++] = num1;
c[i++] = num2;
return i;
}
int digit(char ch, int n, int i, char *c)
{
for (int j = 0; j < n; j++)
c[i++] = ch;
return i;
}
void printRoman(int number)
{
char c[10001];
int i = 0;
if (number <= 0)
{
printf("Invalid number");
return;
}
while (number != 0)
{
if (number >= 1000)
{
i = digit('M', number/1000, i, c);
number = number%1000;
}
else if (number >= 500)
{
if (number < 900)
{
i = digit('D', number/500, i, c);
number = number%500;
}
else
{
i = sub_digit('C', 'M', i, c);
number = number%100 ;
}
}
else if (number >= 100)
{
if (number < 400)
{
i = digit('C', number/100, i, c);
number = number%100;
}
else
{
i = sub_digit('C','D',i,c);
number = number%100;
}
}
else if (number >= 50 )
{
if (number < 90)
{
i = digit('L', number/50,i,c);
number = number%50;
}
else
{
i = sub_digit('X','C',i,c);
number = number%10;
}
}
else if (number >= 10)
{
if (number < 40)
{
i = digit('X', number/10,i,c);
number = number%10;
}
else
{
i = sub_digit('X','L',i,c);
number = number%10;
}
}
else if (number >= 5)
{
if (number < 9)
{
i = digit('V', number/5,i,c);
number = number%5;
}
else
{
i = sub_digit('I','X',i,c);
number = 0;
}
}
else if (number >= 1)
{
if (number < 4)
{
i = digit('I', number,i,c);
number = 0;
}
else
{
i = sub_digit('I', 'V', i, c);
number = 0;
}
}
}
printf("Roman numeral is: ");
for (int j = 0; j < i; j++)
printf("%c", c[j]);
}
int main()
{
int n;
cout<<"Enter number: ";
cin>>n;
printRoman(n);
return 0;
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.