阿拉伯数字转罗马数字
Contents
因为近日在准备保研的刷题…所以得看各种奇怪的题目。但事实上由于太久没有写算法了,现在还在康复期,先做些简单的东西好了…其实是我觉得这个东西什么时候可能会用上?
代码
1 | def intToRoman(self, num: int) -> str: |
阿拉伯数字转罗马数字规则
| 符号 | 数字 |
|---|---|
| I | 1 |
| V | 5 |
| X | 10 |
| L | 50 |
| C | 100 |
| D | 500 |
| M | 1000 |
例如以下的对应:
| 罗马数字 | 阿拉伯数字 |
|---|---|
| III | 3 |
| VI | 6 |
| XVI | 16 |
特殊规则
除了上述简单的累计外,还有一条特殊规则:对于$4\times 10^n$或$9\times 10^n$,应该使用特殊的表达方法:
| 罗马数字 | 阿拉伯数字 |
|---|---|
| IV | 4 |
| IX | 9 |
| XL | 40 |
| XC | 90 |
| … |
在这个规则下,MCMXCIV代表 1994:M:1000;CM:900;XC:90;IV:4。这意味着对于一个阿拉伯数字,最多需要 4 个符号,但基本上还是遵循十进制的规律,所以毫无竞争力可言。