πŸ”Ž Как пСрСвСсти арабскиС Ρ†ΠΈΡ„Ρ€Ρ‹ Π² римскиС python? πŸπŸ’»

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Python, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ пСрСвСсти арабскиС Ρ†ΠΈΡ„Ρ€Ρ‹ Π² римскиС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:


def arabic_to_roman(number):
    arabic = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1]
    roman = ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I']
    result = ''
    for i in range(len(arabic)):
        while number >= arabic[i]:
            result += roman[i]
            number -= arabic[i]
    return result

arabic_number = 123
roman_number = arabic_to_roman(arabic_number)
print(roman_number)
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ функция arabic_to_roman ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ арабскоС число ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅Π³ΠΎ римскоС прСдставлСниС. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ arabic_number Π½Π° своё число ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€ΠΈΠΌΡΠΊΡƒΡŽ Ρ†ΠΈΡ„Ρ€Ρƒ.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как пСрСвСсти арабскиС Ρ†ΠΈΡ„Ρ€Ρ‹ Π² римскиС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ арабских Ρ†ΠΈΡ„Ρ€ Π² римскиС - это распространСнная Π·Π°Π΄Π°Ρ‡Π° ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° Python. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ числа ΠΈΠ· дСсятичной систСмы счислСния Π² Ρ€ΠΈΠΌΡΠΊΡƒΡŽ.

ΠœΠ΅Ρ‚ΠΎΠ΄ 1: ИспользованиС условных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ словаря

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ рассмотрим, основан Π½Π° использовании условных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ словаря для соотвСтствия арабских Ρ†ΠΈΡ„Ρ€ римским символам.


def arabic_to_roman(num):
    roman_numerals = {
        1000: 'M',
        900: 'CM',
        500: 'D',
        400: 'CD',
        100: 'C',
        90: 'XC',
        50: 'L',
        40: 'XL',
        10: 'X',
        9: 'IX',
        5: 'V',
        4: 'IV',
        1: 'I'
    }
    roman_numeral = ''
    for value, numeral in roman_numerals.items():
        while num >= value:
            roman_numeral += numeral
            num -= value
    return roman_numeral

arabic_num = 123
roman_num = arabic_to_roman(arabic_num)
print('РимскоС число:', roman_num)

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

РимскоС число: CXXIII

ΠœΠ΅Ρ‚ΠΎΠ΄ 2: ИспользованиС рСкурсии

Π”Ρ€ΡƒΠ³ΠΈΠΌ способом ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° арабских Ρ†ΠΈΡ„Ρ€ Π² римскиС являСтся использованиС рСкурсии. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ саму сСбя, ΠΏΠΎΠΊΠ° число Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΎ.


def arabic_to_roman(num):
    roman_numerals = [
        (1000, 'M'),
        (900, 'CM'),
        (500, 'D'),
        (400, 'CD'),
        (100, 'C'),
        (90, 'XC'),
        (50, 'L'),
        (40, 'XL'),
        (10, 'X'),
        (9, 'IX'),
        (5, 'V'),
        (4, 'IV'),
        (1, 'I')
    ]
    if num == 0:
        return ''
    for value, numeral in roman_numerals:
        if num >= value:
            return numeral + arabic_to_roman(num - value)

arabic_num = 123
roman_num = arabic_to_roman(arabic_num)
print('РимскоС число:', roman_num)

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ этого ΠΊΠΎΠ΄Π° ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

РимскоС число: CXXIII

Π’Ρ‹Π²ΠΎΠ΄

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли Π΄Π²Π° способа ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° арабских Ρ†ΠΈΡ„Ρ€ Π² римскиС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python. ΠœΡ‹ использовали условныС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ словари, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΡŽ. Оба ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

[Python] АрабскиС числа Π² римскиС. РСшаСм логичСскиС Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° Python вслух #2

5.1 РимскиС Ρ†ΠΈΡ„Ρ€Ρ‹. "ПоколСниС Python": курс для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. ΠšΡƒΡ€Ρ Stepik

Π—Π°Π΄Π°Ρ‡Π° Π½Π° Leetcode. ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ римских чисСл Π² арабскиС Π½Π° JavaScript

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ” Как Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ случайноС число ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π² Python?

πŸ”§ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ Python Π±Π΅Π· pip: подробная инструкция

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ map Π² Python: руководство для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π°

πŸ”Ž Как пСрСвСсти арабскиС Ρ†ΠΈΡ„Ρ€Ρ‹ Π² римскиС python? πŸπŸ’»

πŸ’‘15 Π³Π»Π°Π²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ языка Python: для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Python?

πŸ” Как вывСсти тСкст ΠΈΠ· Ρ„Π°ΠΉΠ»Π° Π² Python: Π»Π΅Π³ΠΊΠΈΠΉ способ с ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌ объяснСниСм

πŸ”Ž Как ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅? Π£Π·Π½Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ совСты ΠΈ Ρ‚Ρ€ΡŽΠΊΠΈ 🐍