python實現將整數轉換為羅馬數字

2021-10-13 15:27:18 字數 1659 閱讀 7172

羅馬數字包含以下七種字元:ivxlcdm

字元數值i1

v5x10

l50c100

d500

m1000

例如, 羅馬數字 2 寫做ii,即為兩個並列的 1。12 寫做xii,即為 x + ii 。 27 寫做xxvii, 即為 xx + v + ii 。

通常情況下,羅馬數字中小的數字在大的數字的右邊。但也存在特例,例如 4 不寫做 iiii,而是iv。數字 1 在數字 5 的左邊,所表示的數等於大數 5 減小數 1 得到的數值 4 。同樣地,數字 9 表示為ix。這個特殊的規則只適用於以下六種情況:

給定乙個整數,將其轉為羅馬數字。輸入確保在 1 到 3999 的範圍內。

輸入: 3

輸出: 「iii」

輸入: 4

輸出: 「iv」

輸入: 9

輸出: 「ix」

輸入: 58

輸出: 「lviii」

解釋: l = 50, v = 5, iii = 3.

輸入: 1994

輸出: 「mcmxciv」

解釋: m = 1000, cm = 900, xc = 90, iv = 4.

我們將羅馬數字與阿拉伯數字的組合先列出來,然後由到到小來進行轉換

class

solution

:def

inttoroman

(self, num:

int)

->

str:

int_to_roman =[(

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_num =

""for number,roman in int_to_roman:

#用來儲存整數和餘數部分

#整數表示重複的次數

count,num =

divmod

(num,number)

roman_num += roman * count

#當餘數為0時結束迴圈

if num ==0:

break

return roman_num

參考:

leetcode詳細題解

python實現將中文日期轉換為數字日期

1 說明 這篇文章是幫乙個群友解答的問題。他有乙個需求,就是對於日期的錄入都是中文形式的,需要轉換為數字形式的。由於python庫中沒有函式直接進行轉換,因此我寫了本篇文章。2 測試源資料如下 3 如下 df pd.read excel r c users 黃偉 desktop chinese en...

java實現將漢語轉換為拼音

這幾天在做專案的時候用到了通過拼音去資料庫表裡面去模糊查詢漢語字段,剛開始的時候感覺特別神奇,查了好多資料,直接去模糊查詢是能實現的,但是貌似很複雜。所以最終取了乙個比較容易的方案,就是給資料庫表裡面新加了乙個拼音字段。完美的解決了這個問題,雖說可以這麼幹,但是資料這麼多,全部轉換為拼音 人乙個乙個...

python實現羅馬數字轉換為整數

輸入 iii 輸出 3 輸入 iv 輸出 4 輸入 ix 輸出 9 輸入 lviii 輸出 58 解釋 l 50,v 5,iii 3.輸入 mcmxciv 輸出 1994 解釋 m 1000,cm 900,xc 90,iv 4.其實實現的思路很簡單,我們就先建立羅馬數字與阿拉伯數字對應的字典,然後再...