010 leetcode Integer to Roman
2015-08-25 13:47
387 查看
转换起来还比较麻烦,按照每个位来转化,先从最后面开始。
如果这一位在1~3之间,那么就把这个位的罗马字符添到字符串前面;
如果这一位等于4,那么就把当前罗马字符+这个位前,一位的罗马字符 + 字符串连接起来;
如果这一位在5~8之间,那么就把这个位置前面一位的罗马字符 + 当前罗马字符 + 字符串连接起来;
如果这一位等于9,那么就把当前字符 +前两位字符 +字符串连接起来;
代码如下,耗时32ms。
如果这一位在1~3之间,那么就把这个位的罗马字符添到字符串前面;
如果这一位等于4,那么就把当前罗马字符+这个位前,一位的罗马字符 + 字符串连接起来;
如果这一位在5~8之间,那么就把这个位置前面一位的罗马字符 + 当前罗马字符 + 字符串连接起来;
如果这一位等于9,那么就把当前字符 +前两位字符 +字符串连接起来;
代码如下,耗时32ms。
string intToRoman(int num) { if (num < 1 || num > 3999) return NULL; int bit = 0; int temp = num; string result; while (temp != 0) { int dealt = temp % 10; switch (dealt) { case 3: result = roman[bit] + result; case 2: result = roman[bit] + result; case 1: { result = roman[bit] + result; break; } case 4: { result = roman[bit + 1] + result; result = roman[bit] + result; break; } case 8: result = roman[bit] + result; case 7: result = roman[bit] + result; case 6: result = roman[bit] + result; case 5: result = roman[bit + 1] + result; break; case 9: result = roman[bit + 2] + result; result = roman[bit] + result; break; default: break; } bit += 2; temp /= 10; } return result; }
相关文章推荐
- 超算上安装python+HTSeq+numpy+easy_install
- 我自己做了一个质数合数判断器,程序和源码都有,大家来给些建议吧
- 为什么数据库版本控制是必要的
- 终端库存数据上报 | 数据上报
- R,让数据针对某列进行排序
- Java反射详解
- 《Java实战开发经典》第五章5.6
- 一个非常正确且强大的编程学习方法
- Android 开发知识点总结
- 浅谈UML的概念和模型之UML九种图
- 【C/C++和指针】printf 的那些事
- css Reset
- Servlet获取当前服务器的实际路径
- Linux网络编程--字符串IP和二进制IP转换
- PAT 1065. A+B and C (64bit) (20)
- 列表控件中简单实现时间线
- HBase之Memstore刷写
- 巧妙使用static 为数据打包并发送
- 向文件写入127个ASCLL码,这程序是什么回事不行
- C++中组合和继承的初始化