12-Integer to Roman

来源:互联网 发布:macbook 修图软件 编辑:程序博客网 时间:2024/04/28 14:12
题目

Given an integer, convert it to a roman numeral.

Input is guaranteed to be within the range from 1 to 3999

分析

参考的别人的代码,非常简洁,就是速度有点慢。

主要思路是利用一个二维的string数组来保存数字的十进制

然后再对num 进行求余操作。

实现
class Solution {public:    string intToRoman(int num) {        string roman[4][10] = {            //0-9            {"","I","II","III","IV","V","VI","VII","VIII","IX"},            //10-90            {"","X","XX","XXX","XL","L","LX","LXX","LXXX","XC"},            //100-900            {"","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"},            //1000-3000            {"","M","MM","MMM"}                     };        string result = "";        int digit = 0;        while (num != 0)        {        //从低位到高位计算            int remain = num % 10;            result = roman[digit][remain] + result;;            digit++;            num /= 10;        }        return result;    }};