上海網(wǎng)站建設(shè)開(kāi)發(fā)哪家澤成杭州seo網(wǎng)站推廣排名
羅馬數(shù)字使用以下七個(gè)符號(hào)書(shū)寫(xiě)。
Symbol Value
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
這些符號(hào)用于表示數(shù)以千計(jì)的數(shù)字。
羅馬寫(xiě)20,可以用兩個(gè)X拼成XX。 但是 XXXX 不等于 40。
40的羅馬數(shù)字是XL。
相似地:
Symbol Value
IV 4
IX 9
XL 40
XC 90
CD 400
CM 900
本篇文章將介紹在 Python 中將整數(shù)轉(zhuǎn)換為羅馬數(shù)字。
在 Python 中將整數(shù)轉(zhuǎn)換為羅馬數(shù)字
以下是一個(gè) Python 程序的實(shí)現(xiàn),它將給定的整數(shù)轉(zhuǎn)換為其等效的羅馬數(shù)字。
roman_map = [(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')]def into_roman(num):res = ''while num > 0:for i, r in roman_map:while num >= i:res += rnum -= ireturn res
num = int(input("Enter a number: "))
print(into_roman(num))
輸出:
Enter a number: 42
XLII
在上面的示例中,roman_map 包含一個(gè)具有相應(yīng)值和符號(hào)的列表。 res 是一個(gè)空字符串。
如果 num 的值大于零,則 while num > 0 運(yùn)行循環(huán)。 羅馬數(shù)字中沒(méi)有零符號(hào)。
roman_map 中的 for i, r 遍歷每個(gè) (integer, roman) 對(duì),直到找到第一個(gè)數(shù)字。
在 Python 中使用除法將整數(shù)轉(zhuǎn)換為羅馬數(shù)字
以下示例使用除法將用戶輸入的整數(shù)轉(zhuǎn)換為羅馬數(shù)字。
roman_map = { 1: 'I', 4: 'IV', 5: 'V', 9: 'IX', 10: 'X', 40: 'XL',50: 'L', 90: 'XC', 100: 'C', 400: 'CD', 500: 'D', 900: 'CM', 1000: 'M'}
num = int(input("Enter a number: "))# 13 integers in descending order
order = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1]for i in order:if num != 0:quotient= num//i# prints the roman numeral if the quotient is not zeroif quotient != 0:for j in range(quotient):print(roman_map[i], end="")# update input number with a remaindernum = num%i
輸出:
Enter a number: 42
XLII
在這種方法中,我們將輸入整數(shù)按降序除以 13 個(gè)基本整數(shù)。 roman_map 是一個(gè)包含 13 個(gè)整數(shù)的字典,它們的羅馬數(shù)字等價(jià)于鍵值對(duì)。
num 存儲(chǔ)用戶輸入的整數(shù)。 順序列表按降序存儲(chǔ) 13 個(gè)整數(shù)。
輸入數(shù)字除以順序列表中的所有數(shù)字,直到商不為零。
如果商不為零且有余數(shù),則在 num 中更新。 循環(huán)繼續(xù)運(yùn)行,我們得到了等價(jià)的羅馬數(shù)字。
現(xiàn)在你應(yīng)該知道如何在 Python 中將整數(shù)轉(zhuǎn)換為羅馬數(shù)字。 我們希望您覺(jué)得本文對(duì)您有所幫助。