LeetCode (12)Integer to Roman

来源:互联网 发布:php项目开发流程 编辑:程序博客网 时间:2024/04/30 08:10

(12)Integer to Roman

题目:将一个整数转换成罗马数字,范围在1~3999。

很简单很暴力,只需要知道罗马数字的表示方法就可以了。

罗马数字表示:

1~9:I,II,III,IV,V,VI,VII,VIII,IX,X;10,20~90:X,XX,XXX,XL,L,LX,LXX,LXXX,XC;100,200~900:C,CC,CCC,CD,D,DC,DCC,DCCC,CM;1000,2000,3000:M,MM,MMM;

那么代码就好写了:

class Solution {public:    string intToRoman(int num) {        map<int,string> m;        m[1]="I";        m[2]="II";        m[3]="III";        m[4]="IV";        m[5]="V";        m[6]="VI";        m[7]="VII";        m[8]="VIII";        m[9]="IX";        m[10]="X";        m[20]="XX";        m[30]="XXX";        m[40]="XL";        m[50]="L";        m[60]="LX";        m[70]="LXX";        m[80]="LXXX";        m[90]="XC";        m[100]="C";        m[200]="CC";        m[300]="CCC";        m[400]="CD";        m[500]="D";        m[600]="DC";        m[700]="DCC";        m[800]="DCCC";        m[900]="CM";        m[1000]="M";        m[2000]="MM";        m[3000]="MMM";        string str = "";        int a = num / 1000, b = (num / 100)%10, c = (num / 10)%10, d = num % 10;        if(a != 0){            str += m[a*1000];        }        if(b != 0){            str += m[b*100];        }        if(c != 0){            str += m[c*10];        }        if(d != 0){            str += m[d];        }        return str;    }};
0 0