class py_solution:
def int_to_Roman(self, num):
val = [
1000, 900, 500, 400,
100, 90, 50, 40,
10, 9, 5, 4,
1
]
syb = [
"M", "CM", "D", "CD",
"C", "XC", "L", "XL",
"X", "IX", "V", "IV",
"I"
]
roman_num = ''
i = 0
while num > 0:
for _ in range(num // val[i]):
roman_num += syb[i]
num -= val[i]
i += 1
return roman_num
print(py_solution().int_to_Roman(1))
Hej,
z racji wolnego czasu zacząłem temat Klas w Python.
Niestety z jednym zadaniem mam problem logiczny.
Chodzi o kod podany wyżej. Mianowicie może mi ktoś wytłumaczyć jak on działa?
Dla takiej osoby jak ja powyższy kod po pierwszym sprawdzaniu wygląda mniej więcej tak: (Podstawiam za num jedynke)
roman_num = '' <-- tu będzie M bo syb[0] to M
i = 0
while 1 > 0:
for _ in range(1 // 1000):
roman_num += M
1 -= 1000 (czyli tutaj wyjdzie -999 i pętla się zakończy bo num ma byc wiekszy od 0)
i += 1
Pewnie to śmieszne ale nie wiem jak tutaj ma wyjść I, a nie M.
Ktoś, coś może pomóc i ze spokojem wytłumaczyć?