首页 > 代码库 > leetcode第12题--Integer to Roman
leetcode第12题--Integer to Roman
Problem:
Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.
把阿拉伯数字转换为罗马数字输出。百度一下对应的 I V X L C D M,代表1,5,10,50,100,500,1000 然后写一个子函数,输入数字和相应的位数级别,如个位为level 1,千为4.因为最多不会超过四千。所以可以如下。注意了,string用法很好,直接加就可以。
class Solution {private:string corRoman(int val, int level){ string base, media, large; string s = ""; if (level == 1) // 个位 { base = "I"; media = "V"; large = "X"; } else if (level == 2) { base = "X"; media = "L"; large = "C"; } else if (level == 3) { base = "C"; media = "D"; large = "M"; } else { base = "M"; } if (val == 0) return ""; if( val < 4) { for ( int i = 0; i < val; i++) s += base; return s; } if (val == 4) { return base + media; } if (val < 9) { s = media; for (int i = 5; i < val; i++) s+=base; return s; } return base + large;}public:string intToRoman(int num){ string s; int a; for (int i = 4; i > 0; i-- ) { a = num/pow(10,i - 1); num %= (int)pow(10, i - 1); s+=corRoman(a,i); } return s;}};
这样就Accept了。
leetcode第12题--Integer to Roman
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。