View difference between Paste ID: DLXLywL4 and hnnyQaZv
SHOW: | | - or go back to the newest paste.
1
rule_add = {
2
    'I': 1,
3
    'V': 5,
4
    'X': 10,
5
    'L': 50,
6
    'C': 100,
7
    'D': 500,
8
    'M': 1000,
9
}
10
11
rule_div = {
12
    ('I', 'V'): 3,
13
    ('I', 'X'): 8,
14
    ('X', 'L'): 30,
15
    ('X', 'C'): 80,
16
    ('C', 'D'): 300,
17
    ('C', 'M'): 800,
18
}
19
20
def roman_to_arabic(roman_number):
21
    number = 0
22
    prev_literal = None
23
    for literal in roman_number:
24
        if prev_literal and rule_add[prev_literal] < rule_add[literal]:
25
            number += rule_div[(prev_literal, literal)]
26
        else:
27
            number += rule_add[literal]
28
        prev_literal = literal
29
    return number
30
31
print (roman_to_arabic(input('Римская цифра ')))