Числа, которые не содержат 4, просто преобразуются, но после проверки числа, содержащего 4, оно не преобразуется должным образом.
Я новичок в python и изо всех сил пытаюсь понять, что не так вкод.Код для преобразования арабских чисел в римские цифры работает для чисел, которые не содержат 4 в них.Я попытался проверить с другой комбинацией чисел.Коды, расположенные перед приведенным ниже, в значительной степени определяют количество тысяч, пяти сотен, сотен и т. Д. Во введенном числе.Может ли кто-нибудь мне помочь?
def display_roman(M, D, C, L, X, V, I):
CM = 0
CD = 0
XC = 0
XL = 0
IX = 0
IV = 0
if D == 2:
M += 1
D -= 2
elif L == 2:
C += 1
L -= 2
elif V == 2:
X += 1
V -= 2
if V == 1 and I == 4:
V = 0
I = 0
IX = 1
elif I == 4:
I == 0
IV == 1
if X == 4:
X == 0
XL == 1
if L == 1 and X == 4:
L == 0
X == 0
XC == 1
if C == 4:
C == 0
CD == 1
if D == 1 and C == 4:
D == 0
C == 0
CM == 1
print("The roman numeral of your number is: ")
print("M" * M, "CM" * CM, "D" * D, "CD" * CD, "C" * C,"XC" * XC, "L" * L, "XL" * XL, "X" * X, "IX" * IX, "V" * V, "IV" * IV, "I" * I)
Если я введу цифры вроде 4 или 14, я ожидаю получить IV и XIV соответственно.Но фактические результаты - IIII и XIIII соответственно.
Пожалуйста, помогите.Извините, если что-то не так с форматом моего вопроса, так как я также новичок в stackoverflow.Заранее спасибо.