Converting base 10 to Roman Numerals

  • Thread starter Thread starter C++ hates me
  • Start date Start date
  • Tags Tags
    Base
AI Thread Summary
The discussion focuses on converting a four-digit Arabic number to Roman numerals using C++. The user has found a code snippet but seeks clarification on specific lines to understand the logic behind them. Key points include the initialization of variables, the loop structure for processing the number, and the significance of the variable `p`, which represents the place value (hundreds, tens, units) during conversion. The user expresses a desire to learn the programming concepts rather than submit the code as their own work. Understanding these elements is crucial for mastering the conversion process in C++.
C++ hates me
Messages
2
Reaction score
0
Hello Physics Forums,

Before i get started asking questions i wanted to clarify that i don't need/want a answer, i have an answer after about an hour of searching.

The thing is i understand what needs to be done but i do not understand how to do it in C++.
I am just hoping to learn from you guys.

Homework Statement



The problem is: I must write a program in C++ that converts a 4 digit arabic number into roman numerals. I must have a loop that allows the user to repeat the calc. however many times they wish ( I already know how.)

The answer that i found was this:

#include <stdafx.h>
#include <iostream>
using namespace std;
int main()
{
1 char l[] = "MDCLXVI";
2 int r,d[]={9,5,4,1};

3 cout << "Enter a positive integer to convert to Roman numerals:\n";
4 cin >> r;

5 do
6 {
7 int p=100;
8 for(; r>=1000; r-=1000)
9 cout << l[0];
10 for (int i=1; i<4; i++,p/=10)
11 {
12 for(; r >= p*d[0]; r -= p*d[0])
13 cout << l[2*i] << l[i*2-2];
14 for(; r >= p*d[1]; r -= p*d[1])
15 cout << l[2*i-1];
16 for(; r >= p*d[2]; r -= p*d[2])
17 cout << l[2*i]<<l[i*2-1];
18 for(; r >= p; r -= p)
19 cout << l[2*i];
}
cout << "\n\nEnter the next number, or -1 to quit:\n";
cin >> r;
} while (r>=0);

cout << "\n\nHave a nice day.";

return 0;
}

**I give all credit to the user gnome for the above program, i merely copied it :(**

The problem is i don't want to turn it in and get a good grade because it isn't my work.
I really want to be able to do it on my own, i just do not understand C++ well enough to write this program.
Can anyone explain to me in ordinary terms what the following lines of code are doing:
1, 2, 7, 8, 10, 12-19 :)

Thank you all for your guidance and patience.
Sean

[edit] I see now that i posted in introductory physics, if an admin could move it to computer sci, engineering boards i would appreciate it!
 
Last edited:
Physics news on Phys.org
Run through the above program manually - on paper. Every time a variable is defined, write it down and put its value in.
 
Last edited:
Ok i will do that. In line 7 when he sets the int p value = to 100 why does he do it? Does it help convert from base 10 to roman numerals?
Line 10 is the one i don't really understand and i take it, its pretty important.
 
C++ hates me said:
Ok i will do that. In line 7 when he sets the int p value = to 100 why does he do it? Does it help convert from base 10 to roman numerals?
Line 10 is the one i don't really understand and i take it, its pretty important.
It is a counter for digit placeholders. It starts off at 100, then in line 10, where the i loop increments, it is divided by 10. So:
when i=1, p=100
when i=2, p=10
when i=3, p=1
when i=4, the loop exits

Presumably, it is going through the 100's column, then the 10's column, then the 1's column.
 
Kindly see the attached pdf. My attempt to solve it, is in it. I'm wondering if my solution is right. My idea is this: At any point of time, the ball may be assumed to be at an incline which is at an angle of θ(kindly see both the pics in the pdf file). The value of θ will continuously change and so will the value of friction. I'm not able to figure out, why my solution is wrong, if it is wrong .
TL;DR Summary: I came across this question from a Sri Lankan A-level textbook. Question - An ice cube with a length of 10 cm is immersed in water at 0 °C. An observer observes the ice cube from the water, and it seems to be 7.75 cm long. If the refractive index of water is 4/3, find the height of the ice cube immersed in the water. I could not understand how the apparent height of the ice cube in the water depends on the height of the ice cube immersed in the water. Does anyone have an...
Back
Top