“你发现了什么?”小A好奇地问。“发现每个相同的区域都有乱码…”小C惊奇地说。“呃,怎么会,我来看看。”小A认真看了看,发现也不像乱码,就是字母和阿拉伯数字合成的字符串,当然也不知道那是什么意思。
“这些是什么呀,除了相同的区域,其它区域都没有。”,小C不解地说。天气有点冷,小A见小C穿得有点单薄就说,“不要管它啦,那不重要,重要的是有点冷,我们去找间奶茶店喝杯热茶”。“好吧…”小C说着就一起整理垃圾扔进垃圾桶。
小C边走还是边思考着那些字符串代表着什么意思。小A觉得她闷闷不乐似乎有心事就问,“怎么啦?有心事?”。“没有,只是觉得好奇那些字符串什么意思呢?罗马时代会有那些字符串?”。“当时罗马怎么会有阿拉伯数字呢?不是应该是罗马数字吗?”,小A疑问地说。小C突然似乎明白了什么,就问“你知道罗马数字?”。“当然知道啊,阿拉伯数字和罗马数字的转换规则我还是比较懂的,以前有专门研究,因为比较喜欢罗马历史。”,小A自豪地说。
“那你跟我说说吧!”小C兴奋地说。小A当然非常乐意分享了就滔滔不绝说起来,“我们就说说四千以内用罗马数字如何表示吧,因为四千以后比较复杂,我怕你这笨笨的头脑听不懂。”“哼,爱说不说!”。
小A开始认真地说,“注意听啦!罗马数字有几个基本字符‘I V X L C D M ’分别表示‘1 5 10 50 100 500 1000 ’”,停顿了下接着说“有四个计数规则,分别是:
1 、相同的数字连写,所表示的数等于这些数字相加得到的数,如:III = 3;
2 、小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数,如:VIII = 8;XII = 12;
3 、小的数字,(限于I、X 和C)在大的数字的左边,所表示的数等于大数减小数得到的数,如:IV= 4;IX= 9;
4 、连写的数字重复不得超过三次。”。“就这么简单吗?”小C半信半疑地问。
“当然,还有五个要注意的地方:
1 、基本数字I、X 、C 中的任何一个,自身连用构成数目,或者放在大数的右边连用构成数目,都不能超过三个;放在大数的左边只能用一个。(如4不是IIII而是IV)
2 、不能把基本数字V 、L 、D 中的任何一个作为小数放在大数的左边采用相减的方法构成数目(如45不是VL而是XLV(50-10+5));放在大数的右边采用相加的方式构成数目,只能使用一个(如60不是LVV而是LX)。
3 、V 和X 左边的小数字只能用I。
4 、L 和C 左边的小数字只能用X。(如49不是IL而是XLIX)
5 、D 和M 左边的小数字只能用C。”。
小C越听越糊涂,“我真的是晕了”。“说你笨你不信,现在知道了吧,人要有自知之明啊!”。“好吧,我承认,要不你写个程序给我吧,以后我就可以不用记那么多规则了。”。“行吧…,前面有家九东烤肉,要不要去?”,小A指着前方。“好呀!好久没有吃了,不过今天让你受苦了,我请客吧!”小C嬉笑道。
进去以后,小A很快地把程序写好了,便与小C开心地吃着烤肉,吃完便各自回宿舍休息了…
广告时间:“九东烤肉”提示你一些罗马数字:
1 位数举例:IX,9;
2 位数举例: XXII,22、 XCVIII,98;
3 位数举例: DCC,700、CM,900、CMXCIX,999;
4 位数举例:MDCLXVI,1666、MDCCCLXXXVIII,1888、MM,2000、MMMCMXCIX,3999。不要感谢我哦,多来照顾照顾生意哦!
多组测试数据,每组测试数据输入一个数a(1<=a<=3999)。
对应的罗马数字,用字母I,V,X,L,C,D,M表示。
1 2000
I MM