阿拉伯数字转罗马

        private string convertRoman(int num) {
            var ans = "";
            var k = (int)Math.Floor(Convert.ToDecimal(num / 1000));
            var h = (int)Math.Floor(Convert.ToDecimal((num % 1000) / 100));
            var t = (int)Math.Floor(Convert.ToDecimal((num % 100) / 10));
            var o = num % 10;
            var one = new[] { "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX" };
            var ten = new[] { "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC" };
            var hundred = new[] { "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM" };
            var thousand = "M";
            for (var i = 0; i < k; i++) {
                ans += thousand;
            }
            if (h > 0) ans += hundred[h - 1];
            if (t > 0) ans += ten[t - 1];
            if (o > 0) ans += one[o - 1];
            return ans;
        }

 

posted on 2023-04-12 13:13  jonney_wang  阅读(17)  评论(0编辑  收藏  举报

导航