Integer to Roman

来源:互联网 发布:网管软件限制 编辑:程序博客网 时间:2024/03/29 20:51

Given an integer, convert it to a roman numeral.

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

将千、百、十、个位数的值依次打表,将最终的字符串进行组合即可;

class Solution {public:       string get_bai(int n)       {           switch(n)               {                   case 1:return "C";                   case 2:return "CC";                   case 3:return "CCC";                   case 4:return "CD";                   case 5:return "D";                   case 6:return "DC";                   case 7:return "DCC";                   case 8:return "DCCC";                   case 9:return "CM";                   default:return "";               }       }       string get_shi(int n)       {         switch(n)          {            case 1:return "X";            case 2:return "XX";            case 3:return "XXX";            case 4:return "XL";            case 5:return "L";            case 6:return "LX";            case 7:return "LXX";            case 8:return "LXXX";            case 9:return "XC";            default:return "";        }       }       string get_ge(int n)       {          switch(n)          {            case 1:return "I";            case 2:return "II";            case 3:return "III";            case 4:return "IV";            case 5:return "V";            case 6:return "VI";            case 7:return "VII";            case 8:return "VIII";            case 9:return "IX";            default:return "";        }       }             string intToRoman(int num) {        string s = "";        int  bit_num[4] = {0};        int a  = num;        bit_num[3] = a/1000;        bit_num[2] = (a-bit_num[3]*1000)/100;        bit_num[1] = (a-bit_num[3]*1000 -bit_num[2]*100)/10;        bit_num[0] = (a- bit_num[3]*1000-bit_num[2]*100-bit_num[1]*10);        int i = 0;        for(i = 0;i<bit_num[3];i++)            s = s+"M";        s = s+get_bai(bit_num[2]);        s = s+ get_shi(bit_num[1]);        s = s+get_ge(bit_num[0]);        return s;    }};


0 0