File tree 1 file changed +30
-30
lines changed
project_euler/problem_089
1 file changed +30
-30
lines changed Original file line number Diff line number Diff line change @@ -43,20 +43,20 @@ def parse_roman_numerals(numerals: str) -> int:
43
43
4
44
44
"""
45
45
46
- num = 0
47
-
48
- i = 0
49
- while i < len (numerals ) - 1 :
50
- value = symbols [numerals [i ]]
51
- next_value = symbols [numerals [i + 1 ]]
52
- if value < next_value :
53
- num -= value
46
+ total_value = 0
47
+
48
+ index = 0
49
+ while index < len (numerals ) - 1 :
50
+ current_value = symbols [numerals [index ]]
51
+ next_value = symbols [numerals [index + 1 ]]
52
+ if current_value < next_value :
53
+ total_value -= current_value
54
54
else :
55
- num += value
56
- i += 1
57
- num += symbols [numerals [i ]]
55
+ total_value += current_value
56
+ index += 1
57
+ total_value += symbols [numerals [index ]]
58
58
59
- return num
59
+ return total_value
60
60
61
61
62
62
def generate_roman_numerals (num : int ) -> str :
@@ -71,34 +71,34 @@ def generate_roman_numerals(num: int) -> str:
71
71
72
72
numerals = ""
73
73
74
- m = num // 1000
75
- numerals += m * "M"
74
+ m_count = num // 1000
75
+ numerals += m_count * "M"
76
76
num %= 1000
77
77
78
- c = num // 100
79
- if c == 9 :
78
+ c_count = num // 100
79
+ if c_count == 9 :
80
80
numerals += "CM"
81
- c -= 9
82
- elif c == 4 :
81
+ c_count -= 9
82
+ elif c_count == 4 :
83
83
numerals += "CD"
84
- c -= 4
85
- if c >= 5 :
84
+ c_count -= 4
85
+ if c_count >= 5 :
86
86
numerals += "D"
87
- c -= 5
88
- numerals += c * "C"
87
+ c_count -= 5
88
+ numerals += c_count * "C"
89
89
num %= 100
90
90
91
- x = num // 10
92
- if x == 9 :
91
+ x_count = num // 10
92
+ if x_count == 9 :
93
93
numerals += "XC"
94
- x -= 9
95
- elif x == 4 :
94
+ x_count -= 9
95
+ elif x_count == 4 :
96
96
numerals += "XL"
97
- x -= 4
98
- if x >= 5 :
97
+ x_count -= 4
98
+ if x_count >= 5 :
99
99
numerals += "L"
100
- x -= 5
101
- numerals += x * "X"
100
+ x_count -= 5
101
+ numerals += x_count * "X"
102
102
num %= 10
103
103
104
104
if num == 9 :
You can’t perform that action at this time.
0 commit comments