Integer to Roman
2015-07-08 09:51
267 查看
主要思想:
将罗马数字的范围分块,其中,最左部分可分为13个点。
对于目标数字,看它在哪个范围内,则它可以拆分为左边节点对应的字符串+(数字-左边界值)的对应罗马字符的组合。
用一个递归算法来实现即可。
将罗马数字的范围分块,其中,最左部分可分为13个点。
对于目标数字,看它在哪个范围内,则它可以拆分为左边节点对应的字符串+(数字-左边界值)的对应罗马字符的组合。
用一个递归算法来实现即可。
class Solution { public: string intToRoman(int num) { if(num==0) { return ""; } int nums[13]={1,4,5,9,10,40,50,90,100,400,500,900,1000}; string strs[13]={"I","IV","V","IX","X","XL","L","XC","C","CD","D","CM","M"}; string res=""; for(int i=12;i>=0;i--) { if(num>=nums[i]) { res=res+strs[i]; int temp=num-nums[i]; res=res+intToRoman(temp); break; } } return res; } };
相关文章推荐
- 欢迎使用CSDN-markdown编辑器
- js中几种实用的跨域方法原理详解
- C++知识点随笔(四):耦合问题、new和malloc、虚析构、多继承
- Jdeveloper 12c 实体主键自动生成 使用 oracle.jbo.server.SequenceImpl 报错
- c# 图片转二进制/字符串 二进制/字符串反转成图片
- android解析json数据的详解实例
- MySQL创建数据库并授权的SQL
- 打游戏的教育意义
- 优化Windows 远程桌面连接的方法措施
- [leetcode] 134 Gas Station
- [刷题]Subsets II
- 怎样查询SQL数据库中某一个表中的某个列的一个数值的所有行数据
- Shell:value too great for base
- ubuntu nginx 创建多个站点
- 关于NSTimer的几点说明
- HDU 4864Task(更多的联合培训学校1)(贪婪)
- 【LeetCode】231. Power of Two
- 关于NSTimer的几点说明
- HTTP深入浅出 http请求
- sql中内连接与外连接的区别