罗马数字转化 2.2.1
2011-04-13 10:16
176 查看
罗马数字转换一看就二了, usaco上说的不也明白
其实我们可以这么想:
1.罗马数字是没有进制的,它是由较小数相加组成的较大数的(也使得表示大数很麻烦,后人抛弃罗马数的原因).
2.数字总是按照递减的顺序排列的
3.最多3个相同的数字组成一个10^n数,比如III,XXX,etc.
4.可以使用减规则,比如4表示成IV ,90表示成 XC,这点很重要,有了这个我们只要从大数向小数枚举的时候总可以保证上述的限制3成立
5.还有一个小规律就是,罗马说的组合是有"进制的",这个类似子结构的1~9玩意以后可能用的到.
其实我们可以这么想:
1.罗马数字是没有进制的,它是由较小数相加组成的较大数的(也使得表示大数很麻烦,后人抛弃罗马数的原因).
2.数字总是按照递减的顺序排列的
3.最多3个相同的数字组成一个10^n数,比如III,XXX,etc.
4.可以使用减规则,比如4表示成IV ,90表示成 XC,这点很重要,有了这个我们只要从大数向小数枚举的时候总可以保证上述的限制3成立
5.还有一个小规律就是,罗马说的组合是有"进制的",这个类似子结构的1~9玩意以后可能用的到.
http://hi.baidu.com/redraiment/blog/item/884e2a46ac1263096b63e5f0.html
相关文章推荐
- Roman to Integer 罗马数字转化为整数
- 45. leetCode12: Integer to Roman【数字转化为罗马字母】
- LeetCode--Roman to Integer 罗马数字转化成整数
- 蓝桥杯——罗马数字的转化
- 13.罗马数字转化为整型
- 送给大家一个把阿拉伯数字与罗马数字互换的代码 -.- 仅支持4000以下的转化
- 罗马字符转化为阿拉伯数字
- 阿拉伯数字(1到4000)转化为罗马数字的javascript实现
- Roman to Integer 罗马数字转化成整数
- 46. leetCode 13: Roman to Integer【罗马数转化为数字】
- 整数(1~3999)转化为罗马数字
- 12.阿拉伯数字转化为罗马数字1-3999
- [LintCode] Roman to Integer 罗马数字转化成整数
- [LeetCode]12. Integer to Roman(整数转化为罗马数字)
- 13.罗马数字转化为阿拉伯数字1-3999
- [LeetCode] Integer to Roman 整数转化成罗马数字
- Roman to Integer 罗马数字转化成整数
- leetcode:Integer to Roman(整数转化为罗马数字)
- 阿拉伯数字转化为罗马数字
- java将阿拉伯数字转化为罗马数字 I II III IV V VI