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 class Solution {
02 public:
03     string intToRoman(int num) {
04         // Start typing your C/C++ solution below
05         // DO NOT write int main() function    
06         string s;
07         while(num!=0)
08         {
09             while(num>=1000)
10             {
11                 s+=‘M’;
12                 num-=1000;
13             }
14             if(num>=900)
15             {
16                 s+=‘C’;
17                 s+=‘M’;
18                 num-=900;
19             }
20             if(num>=500)
21             {
22                 s+=‘D’;
23                 num-=500;
24             }
25             if(num>=400)
26             {
27                 s+=‘C’;
28                 s+=‘D’;
29                 num-=400;
30             }
31             while(num>=100)
32             {
33                 s+=‘C’;
34                 num-=100;
35             }
36             if(num>=90)
37             {
38                 s+=‘X’;
39                 s+=‘C’;
40                 num-=90;
41             }
42             if(num>=50)
43             {
44                 s+=‘L’;
45                 num-=50;
46             }
47             if(num>=40)
48             {
49                 s+=‘X’;
50                 s+=‘L’;
51                 num-=40;
52             }
53             while(num>=10)
54             {
55                 s+=‘X’;
56                 num-=10;
57             }
58             if(num>=9)
59             {
60                 s+=‘I’;
61                 s+=‘X’;
62                 num-=9;
63             }
64             if(num>=5)
65             {
66                 s+=‘V’;
67                 num-=5;
68             }
69             if(num>=4)
70             {
71                 s+=‘I’;
72                 s+=‘V’;
73                 num-=4;
74             }
75             while(num>0)
76             {
77                 s+=‘I’;
78                 num;
79             }
80         }
81         return s;
82     }
83 };
Advertisements
This entry was posted in Number trick, 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