gpt4 book ai didi

可以将罗马转换为十进制的程序的算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:55:01 25 4
gpt4 key购买 nike

我需要一些关于算法的帮助,我在其中附加了一个问题,它说我必须为一个可以将 Roman 转换为 Decimal 的程序开发一个算法。

我不知道该怎么做,希望有一个完整的算法,但我们非常感谢您的帮助。它是算法而不是程序!

enter image description here

最佳答案

思路是从头到尾遍历罗马数字串。对于每个字符,将相应的数字添加到结果中。对于一些特殊的例如‘I’、‘X’、‘C’,检查结果是否大于对应的数字。如果是,我们需要减去数字从结果。如果不是,我们需要将数字添加到结果中。

res = 0
for each character c backwards:
if c =='I'
res += res + (res >= 5 ? -1 : 1)
else if c=='V'
res += res + 5
else if c=='X'
res += 10 * (res >= 50 ? -1 : 1)
else if c=='L'
res += 50;
else if c == 'C'
res += 100 * (res >= 500 ? -1 : 1)
else if c== 'D'
res += 500
else if c=='M'
res += 1000
return res

例如:MMDCCCXCIX

= 0 + MMDCCCXCIX

= 10 + MMDCCCXCI

= 9 + MMDCCCXC(10 > 5)

= 109 + MMDCCCX

= 99 + MMDCCC(109 > 50)

= 199 + MMDCC

= 299 + MMDC

= 399 + MMD

= 899 + 毫米

= 1899 + M

= 2899

关于可以将罗马转换为十进制的程序的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39559495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com