本文共 1653 字,大约阅读时间需要 5 分钟。
将整数转换为罗马数字是一个经典的算法练习。本文将介绍如何实现一个能够将1到3999之间的整数转换为罗马数字的C#函数。
罗马数字由以下基本字符组成:
对应的阿拉伯数字为:1, 5, 10, 50, 100, 500, 1000。。
罗马数字的表达规则:
基于以上规则,我们可以采用以下方法进行罗马数字的转换:
代码如下:
using System.Text;class Solution { public string intToRoman(int n) { if (n < 1 || n > 3999) { return ""; } char[,] symbols = new char[4, 10] { { "", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX" }, { "", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC" }, { "", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM" }, { "", "M", "MM", "MMM" } }; StringBuilder roman = new StringBuilder(); roman.Append(symbols[3, n / 1000 % 10]); roman.Append(symbols[2, n / 100 % 10]); roman.Append(symbols[1, n / 10 % 10]); roman.Append(symbols[0, n % 10]); return roman.ToString(); }}
下面通过几个例子验证该算法的正确性:
通过以上步骤,我们成功实现了一个将整数转换为罗马数字的C#函数。这个函数可以处理1到3999之间的数字转换,并能够正确生成符合罗马数字规则的字符串表示。
转载地址:http://wywfk.baihongyu.com/