Integer to Roman

Given an integer, convert it to a roman numeral.

Input is guaranteed to be within the range from 1 to 3999.

C++:
01 string intToRoman(int num)
02 {
03        string s;
04        while(num>=1000){
05            s+=‘M’;
06            num-=1000;
07        }
08        if(num>=900){
09            s+=‘C’;
10            s+=‘M’;
11            num-=900;
12        }
13        if(num>=500){
14            s+=‘D’;
15            num-=500;
16        }
17        if(num>=400){
18            s+=‘C’;
19            s+=‘D’;
20            num-=400;
21        }
22        while(num>=100){
23            s+=‘C’;
24            num-=100;
25        }
26        if(num>=90){
27            s+=‘X’;
28            s+=‘C’;
29            num-=90;
30        }
31        if(num>=50){
32            s+=‘L’;
33            num-=50;
34        }
35        if(num>=40){
36            s+=‘X’;
37            s+=‘L’;
38            num-=40;
39        }
40         while(num>=10){
41            s+=‘X’;
42            num-=10;
43        }
44        if(num==9){
45            s+=‘I’;
46            s+=‘X’;
47            return s;
48        }
49        if(num>=5){
50            s+=‘V’;
51            num-=5;
52        }
53        if(num==4){
54            s+=‘I’;
55            s+=‘V’;
56            return s;
57        }
58        while(num>=1){
59            s+=‘I’;
60            num;
61        }
62        return s;
63 }
Advertisements
This entry was posted in String. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s