SeedCoder2014热身题目4:IVXLCDM
2014-03-30 21:08
274 查看
描述:
罗马数字是欧洲在阿拉伯数字(实际上是印度数字)传入之前使用的一种数码,现在应用较少.它的产生晚于中国甲骨文中的数码,更晚于埃及人的十进位数字.但是,它的产生标志着一种古代文明的进步.
罗马数字用7个拉丁字母IVXLCDM和读数规则来表示数.
I = 1
V = 5
X = 10
L = 50
C = 100
D = 500
M = 1000
读数规则有以下三条
(1)相同的数字连写,所表示的数等于这些数字相加得到的数,如:III就代表3;
(2)小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数.如:VIII =8,XII=12;
(3)小的数字在大的数字的左边,所表示的数等于大数减小数得到的数,如IV=4.IX =9.
注意不会出现IIX这样的情况,即每个数字左边最多有一个值比它小的数字.
现在给你一些罗马数字表示下的数,要求你编写程序把它转换为用阿拉伯数字表示.
输入:
输入文件包含多组测试数据,每组测试数据一行,给出一个罗马数字表示的数,只包含IVXLCDM的合法组合,字母子间没有空白字符.确保转换得到的阿拉伯数字不会超过3000.
输出:
对于每一组测试数据,对应输出其阿拉伯数字表示.
罗马数字是欧洲在阿拉伯数字(实际上是印度数字)传入之前使用的一种数码,现在应用较少.它的产生晚于中国甲骨文中的数码,更晚于埃及人的十进位数字.但是,它的产生标志着一种古代文明的进步.
罗马数字用7个拉丁字母IVXLCDM和读数规则来表示数.
I = 1
V = 5
X = 10
L = 50
C = 100
D = 500
M = 1000
读数规则有以下三条
(1)相同的数字连写,所表示的数等于这些数字相加得到的数,如:III就代表3;
(2)小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数.如:VIII =8,XII=12;
(3)小的数字在大的数字的左边,所表示的数等于大数减小数得到的数,如IV=4.IX =9.
注意不会出现IIX这样的情况,即每个数字左边最多有一个值比它小的数字.
现在给你一些罗马数字表示下的数,要求你编写程序把它转换为用阿拉伯数字表示.
输入:
输入文件包含多组测试数据,每组测试数据一行,给出一个罗马数字表示的数,只包含IVXLCDM的合法组合,字母子间没有空白字符.确保转换得到的阿拉伯数字不会超过3000.
输出:
对于每一组测试数据,对应输出其阿拉伯数字表示.
样例:
输入:
DXII
输出:
512
相关文章推荐
- SeedCoder2014热身题目2:解答
- SeedCoder2014热身题目5 -- 解答
- 【SeedCoder 2015年热身题2 动态规划 】费波拉契序列(题目+答案)
- SeedCoder2014热身题4:解答
- SeedCoder2014热身题7:解答
- 【SeedCoder 2015年热身题1 常规】质数问题(题目+答案)
- 【SeedCoder2015年 热身题5 搜索】上上下下ABAB (题目+答案)
- SeedCoder2014热身题6:优雅数对
- 【SeedCoder2015年热身题3 动态规划】0-1背包 (题目+答案)
- 【SeedCoder2015年 热身题7 搜索】Lake Counting (题目+答案)
- SeedCoder2014热身题9:解答
- SeedCoder2014热身题9:午餐饭团
- 【SeedCoder2015年 热身题6 搜索】Move Game (题目)
- 【SeedCoder2015年 热身题4 动态规划】贴瓷砖 (题目+答案)
- 【SeedCoder 2015年热身】写在最前面的话
- SeedCoder2014热身题目3:解答
- SeedCoder2014热身题目5:频率最高的数字
- SeedCoder2014热身题目8:圆的重叠问题
- SeedCoder2014热身题目1:找数字游戏
- SeedCoder2014热身题目6: 解答