LeetCode 12. Integer to Roman

参考了Yuwen's Hero的题解,以及blackwasp对罗马计数系统的定义

不解的是根据定义的第三条规则,为什么不能不能用LD代替450, 用VL代替45呢 —— 因为有个测试点说明45应该是XLV

理解的朋友麻烦告诉我声,谢。


代码:

class Solution 
{
public:
    string intToRoman(int num) 
    {
	// 没有450, 和45
    	int digit[] = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
    	string str[] = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};
    	string ret;

    	for (int i = 0; i < sizeof(digit)/sizeof(int); ++ i)
    	{
    		while (num >= digit[i])
    		{
    			num -= digit[i];
    			ret += str[i];
    		}
    	}

    	return ret;
    }
};


你可能感兴趣的:(LeetCode,C++)