12-m-Integer to Roman
来源:互联网 发布:批量抠图软件 编辑:程序博客网 时间:2024/06/18 06:47
数字转罗马数字。没啥思路,只能想到一个个if判断,但觉得肯定不该这么笨拙,翻了解答,是用了类似map映射的原理,将字母与数字对应起来,而且将要用减法的4和9直接做了映射,于是剩下的数字组合都是用加法实现,因此循环就可以了。
如下:
char* intToRoman(int num) { int size = 16; char *result = (char *)malloc(sizeof(char) * size); memset(result, 0, sizeof(char) * size); int numbers[] = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1}; char *romans[] = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"}; int n = 0; for (int i = 0; num > 0; i++) { n = num / numbers[i]; num = num % numbers[i]; for (int j = 0; j < n; j++) strcat(result, romans[i]); } return result;}
话说c做这种题目还真是费劲,字母还得一个个加进去,c++的话运算符重载就可以了。
0 0
- 12-m-Integer to Roman
- 《LeetBook》leetcode题解(12):Integer to Roman[M]
- 12、Integer to Roman
- 12、Integer to Roman
- 12Integer to Roman
- #12 Integer to Roman
- 12 Integer to Roman
- [12]Integer to Roman
- 12、Integer to Roman
- 【12】Integer to Roman
- 12 Integer to Roman
- 12-Integer to Roman
- Leetcode[12-13] Roman to Integer & Integer to Roman(Java)
- LeetCode_OJ【12】【13】Integer to Roman && Roman to Integer
- <LeetCode OJ> 13 / 12 Roman to Integer & Integer to Roman
- leetcode 12|13. Integer to Roman && Roman to Integer
- [LeetCode 12] Integer to Roman
- leetcode 12 Integer to Roman
- mysql explain详细介绍
- C++对象模型之详述C++对象的内存布局
- Uva - 442 - Matrix Chain Multiplication
- xtu 1236 Fraction(小数化分数)
- MFC slider拖动事件响应
- 12-m-Integer to Roman
- Java操作XML文件(读)
- JQuery使用reset重置表单
- c语言文件操作简集
- 算法练习:重叠区间个数
- C++对象模型之RTTI的实现原理
- java排序算法
- 机器翻译的前世今生
- 深入了解java集合框架一: LinkedHashMap的特殊功能 (基于访问的"最少使用算法(LRU))清除没有被访问或者少访问的元素