12. Integer to Roman

题目:

12. Integer to Roman

12. Integer to Roman

解答:

方法就是分步计算,从左到右依次处理即可。

代码:

class Solution {
public:
    string intToRoman(int num) {
        char s[1000] = {0};
        int index = 0;
        if(num >= 1000){
            while(num >= 1000){
                s[index++] = 'M';
                num -= 1000;
            }
        }
        if(num >= 900){
            s[index++] = 'C';
            s[index++] = 'M';
            num -= 900;
        }
        if(num >= 500){
            s[index++] = 'D';
            num -= 500;
        }
        if(num >= 400){
            s[index++] = 'C';
            s[index++] = 'D';
            num -= 400;
        }
        if(num >= 100){
            while(num >= 100){
                s[index++] = 'C';
                num -= 100;
            }
        }
        if(num >= 90){
            s[index++] = 'X';
            s[index++] = 'C';
            num -= 90;
        }
        if(num >= 50){
            s[index++] = 'L';
            num -= 50;
        }
        if(num >= 40){
            s[index++] = 'X';
            s[index++] = 'L';
            num -= 40;
        }
        if(num >= 10){
            while(num >= 10){
                s[index++] = 'X';
                num -= 10;
            }
        }
        if(num >= 9){
            s[index++] = 'I';
            s[index++] = 'X';
            num -= 9;
        }
        if(num >= 5){
            s[index++] = 'V';
            num -= 5;
        }
        if(num >= 4){
            s[index++] = 'I';
            s[index++] = 'V';
            num -= 4;
        }
        if(num > 0){
            while(num > 0){
                s[index++] = 'I';
                num--;
            }
        }
        return s;
    }
};

更新会同步在我的网站更新(https://zergzerg.cn/notes/webnotes/leetcode/index.html)