一个罗马数字转换问题

多态 2011-05-24 01:41:21
输入一个序列 比如ABCCDED 根据罗马数字的规则 求出他的最小值 并且输出对应的序列。例:如题中的序列 ABCCDED,这个序列的值为 1719。这个值是通过 ABC_D_E 求出,没有用到的字符以_代替。 ABC_D_E 和罗马数字相对应 E=1, 5因为没有用到 所以是_, D为10, 50没有用到用_代替, C为100, B为500, A为1000。
题就这样 现在没有思路 望高手指点一条明路。
...全文
261 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
多态 2011-05-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 roger_wong 的回复:]

题意好混乱啊,我的理解是按照序列取权值然后累加,重复元素排除...不知道对不对
[/Quote]
不对
我再解释下 :有个序列,比如ABCCDED (这个是用户随即输入的)这个序列要根据罗马数字的规则求出阿拉伯数字最小值,当然如果输入的序列不符合规则,就提示这个序列不符合罗马规则。 如果符合,那么有可能有很多种情况对应不一样的排列。现在要求最小的值,就是1719,这个阿拉伯最小值是根据 ABC_D_E 这个序列求出的(这个序列是 罗马数字规则 和 MDCLXVI 雷同,但是罗马数字只有7个字母,最大3999,这道题不限制字母个数和取值范围)ABC_D_E中 E是1,因为在求出1719这个数的时候没用到5 所以是_ 然后D是10 C是100 B是500 A是1000

ABCCDED = 1000(A)+ 500(B)+ 100(C)+ 100(C)+ 10(D) + 9(ED)
罗马规则 9由下面得出
ED = 10(D)-1(E)
不知道我解释的清楚不
多态 2011-05-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 luciferisnotsatan 的回复:]

题目没看懂。。。
[/Quote]
我再解释下 :有个序列,比如ABCCDED (这个是用户随即输入的)这个序列要根据罗马数字的规则求出阿拉伯数字最小值,当然如果输入的序列不符合规则,就提示这个序列不符合罗马规则。 如果符合,那么有可能有很多种情况对应不一样的排列。现在要求最小的值,就是1719,这个阿拉伯最小值是根据 ABC_D_E 这个序列求出的(这个序列是 罗马数字规则 和 MDCLXVI 雷同,但是罗马数字只有7个字母,最大3999,这道题不限制字母个数和取值范围)ABC_D_E中 E是1,因为在求出1719这个数的时候没用到5 所以是_ 然后D是10 C是100 B是500 A是1000

ABCCDED = 1000(A)+ 500(B)+ 100(C)+ 100(C)+ 10(D) + 9(ED)
罗马规则 9由下面得出
ED = 10(D)-1(E)
DST_Roger 2011-05-24
  • 打赏
  • 举报
回复
LZ这个题从哪来的?
luciferisnotsatan 2011-05-24
  • 打赏
  • 举报
回复
题目没看懂。。。
DST_Roger 2011-05-24
  • 打赏
  • 举报
回复
题意好混乱啊,我的理解是按照序列取权值然后累加,重复元素排除...不知道对不对

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧