Integer to Roman

来源:互联网 发布:淘宝怎么买qq号 编辑:程序博客网 时间:2024/05/21 01:58
class Solution {public:string cc(int num){if(num<10&&num>=0){switch(num){case 0: return "";break;case 1: return "I";break;case 2: return "II";break;case 3: return "III";break;case 4: return "IV";break;case 5: return "V";break;case 6: return "VI";break;case 7: return "VII";break;case 8: return "VIII";break;case 9: return "IX";break;}}else if(num<100&&num>9){switch(num){    case 10: return"X";break;case 20: return"XX";break;case 30: return"XXX";break;case 40: return"XL";break;case 50: return"L";break;case 60: return"LX";break;case 70: return"LXX";break;case 80: return"LXXX";break;case 90: return"XC";break;}}else if(num<1000&&num>99){switch(num){    case 100: return"C";break;case 200: return"CC";break;case 300: return"CCC";break;case 400: return"CD";break;case 500: return"D";break;case 600: return"DC";break;case 700: return"DCC";break;case 800: return"DCCC";break;case 900: return"CM";break;}}else if(num<4000&&num>999){switch (num){    case 1000: return"M";break;case 2000: return"MM";break;case 3000: return"MMM";break;}}}string intToRoman(int num) {    map<int,char> roman;roman[1]='I';roman[5]='V';roman[10]='X';roman[50]='L';roman[100]='C';roman[500]='D';roman[1000]='M';//每个位肢解int yz = 1;string res;while(num/yz){stringstream ss;int temp = num%(yz*10)/yz*yz;yz *=10;ss<<cc(temp);res = ss.str()+res;}return res;}};

0 0
原创粉丝点击