LeetCode整型转罗马数字-C#贪心算法

代码思想

着眼局部最优解,想办法一步步利用到罗马数字对应的特殊数字,最后得到结果。


代码

public string IntToRoman(int num)
{
        int[] values = new int[13] { 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1 };
	string[] symbols = new string[13] { "M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I" };
 
	StringBuilder sb = new StringBuilder();
 
	int i = 0;
	while (i < 13)
	{
            if(num>=values[i])//假如大于等于特殊数字
            {
               sb.Append(symbols[i]);//添加特殊数字
               num-=values[i];
            }
            else
            {
               i++;
             }                    
                
	}
 
	return sb.ToString();
}

猜你喜欢

转载自blog.csdn.net/aa989111337/article/details/126455506