-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathInteger to Roman.cpp
88 lines (87 loc) · 2.08 KB
/
Integer to Roman.cpp
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
class Solution {
public:
string intToRoman(int num) {
int temp=num;
vector<string> vec(4000);
vec[1]="I";
vec[2]="II";
vec[3]="III";
vec[4]="IV";
vec[5]="V";
vec[6]="VI";
vec[7]="VII";
vec[8]="VIII";
vec[9]="IX";
vec[10]="X";
vec[40]="XL";
vec[50]="L";
vec[100]="C";
vec[90]="XC";
vec[400]="CD";
vec[500]="D";
vec[900]="CM";
vec[1000]="M";
//cout<<vec[45];
string s="";
while(temp>0)
{
if((vec[temp].length()!=0))
{
//cout<<vec[temp];
s+=vec[temp];
temp=0;
}
else if(temp<40)
{
//cout<<vec[10];
s+=vec[10];
temp-=10;
}
else if(temp>40 && temp<50)
{
s+=vec[40];
temp-=40;
}
else if(temp>=50 && temp<=89)
{
//cout<<vec[50];
s+=vec[50];
temp-=50;
}
else if(temp>=91 && temp<=99)
{
//cout<<vec[90];
s+=vec[90];
temp-=90;
}
else if(temp>100 && temp<=399)
{
//cout<<vec[100];
s+=vec[100];
temp-=100;
}
else if(temp>400 && temp<500)
{
s+=vec[400];
temp-=400;
}
else if(temp>500 && temp<900)
{
s+=vec[500];
temp-=500;
}
else if(temp>900 && temp<1000)
{
s+=vec[900];
temp-=900;
}
else if(temp>1000)
{
s+=vec[1000];
temp-=1000;
}
}
cout<<s;
return s;
}
};