首页 > 学院 > 开发设计 > 正文

Int to Roman

2019-11-06 06:37:57
字体:
来源:转载
供稿:网友

Given an integer, convert it to a roman numeral.

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

class Solution {public: string intToRoman(int num) { map<int, string> roman; roman[1] = "I"; roman[4] = "IV"; roman[5] = "V"; roman[9] = "IX"; roman[10] = "X"; roman[40] = "XL"; roman[50] = "L"; roman[90] = "XC"; roman[100] = "C"; roman[400] = "CD"; roman[500] = "D"; roman[900] = "CM"; roman[1000] = "M"; int number[] = {1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000}; std::vector<int> v(number, number+13); int cur = v.size()-1; //找到第一个比num大的数, for (int i=0; i<v.size(); i++) { if (v[i] > num) { cur = i-1; break; } } string rStr; while (num) { int cnt = num / v[cur]; //cout << cnt << " " << v[cur] << endl; num = num % v[cur]; for (int i=0; i<cnt; i++) rStr.append(roman[v[cur]]); cur--; } return rStr; }};
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表