-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinteger_to_roman.cpp
More file actions
99 lines (92 loc) · 2.28 KB
/
Copy pathinteger_to_roman.cpp
File metadata and controls
99 lines (92 loc) · 2.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#include<bits/stdc++.h>
using namespace std;
string intToRoman(int num) {
string s="";
while(num>0){
if(num>=1000){
int x=num/1000;
num=num%1000;
s+=string(x,'M');
}else if(num>=900){
int x=num/900;
num=num%900;
for(int i=0;i<x;i++){
s+="CM";
}
//s+=string(x,'CM');
}else if(num>=500){
int x=num/500;
num=num%500;
s+=string(x,'D');
}else if(num>=400){
int x=num/400;
num=num%400;
for(int i=0;i<x;i++){
s+="CD";
}
//s+=string(x,'CD');
}else if(num>=100){
int x=num/100;
num=num%100;
s+=string(x,'C');
}else if(num>=90){
int x=num/90;
num=num%90;
for(int i=0;i<x;i++){
s+="XC";
}
//s+=string(x,'XC');
}else if(num>=50){
int x=num/50;
num=num%50;
s+=string(x,'L');
}else if(num>=40){
int x=num/40;
num=num%40;
for(int i=0;i<x;i++){
s+="XL";
}
//s+=string(x,'XL');
}else if(num>=10){
int x=num/10;
num=num%10;
s+=string(x,'X');
}else if(num>=9){
int x=num/9;
num=num%9;
for(int i=0;i<x;i++){
s+="IX";
}
//s+=string(x,'IX');
}else if(num>=5){
int x=num/5;
num=num%5;
s+=string(x,'V');
}else if(num>=4){
//cout<<4<<endl;
int x=num/4;
num=num%4;
for(int i=0;i<x;i++){
s+="IV";
}
//s+=string(x,'IV');
}else{
s+=string(num,'I');
num=0;
}
}
return s;
}
int main(){
int num=3;
cout<<intToRoman(num)<<endl;
num=4;
cout<<intToRoman(num)<<endl;
num=9;
cout<<intToRoman(num)<<endl;
num=58;
cout<<intToRoman(num)<<endl;
num=1994;
cout<<intToRoman(num)<<endl;
return 0;
}