Python3.5實現(xiàn)的羅馬數(shù)字轉(zhuǎn)換成整數(shù)功能示例
本文實例講述了Python3.5實現(xiàn)的羅馬數(shù)字轉(zhuǎn)換成整數(shù)功能。分享給大家供大家參考,具體如下:
問題概述:
給定一個羅馬數(shù)字 ,將羅馬數(shù)字轉(zhuǎn)換成整數(shù)。
如羅馬數(shù)字I,II,III,IV,V分別代表數(shù)字 1, 2, 3, 4, 51,2,3,4,5。
首先要來了解一下羅馬數(shù)字表示法,基本字符有 7 個:I、V、X、L、C、D、M,分別表示 1、5、10、50、100、500、1000。
在構(gòu)成數(shù)字的時候,有下列規(guī)則:
1、相同的數(shù)字連寫,所表示的數(shù)等于這些數(shù)字相加得到的數(shù),如:III = 3;
2、小的數(shù)字在大的數(shù)字的右邊,所表示的數(shù)等于這些數(shù)字相加得到的數(shù), 如:VIII = 8;XII = 12;
3、小的數(shù)字,(限于Ⅰ、X和C)在大的數(shù)字的左邊,所表示的數(shù)等于大數(shù)減小數(shù)得到的數(shù),如:IV = 4;IX = 9;
4、正常使用時,連寫的數(shù)字重復不得超過三次。
輸入格式
輸入一個羅馬數(shù)字字符串,其對應的數(shù)字為 s (1≤s≤3999)。
輸出格式
輸出對應的整數(shù) s。
以下是詳細代碼:
# -*- coding:utf-8 -*- #! python3 chart = {'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000} strs = input() result = 0 omit = -1 # omit為需省略的字符位 if strs in chart: print(chart[strs]) else: for i in range(len(strs)): # 遍歷字符串的每一位:(0,len-1) if i == omit: # 如果無需省略i pass elif i <= len(strs)-2: # 如果還沒有遍歷到最后一位:(len-1-1) if chart[strs[i]] < chart[strs[i+1]]: # 如果前一位對應值小于后一位的 result += chart[strs[i+1]] - chart[strs[i]] # 進行減操作 omit = i+1 # 省略下一位字符 else: result += chart[strs[i]] else: # 遍歷到最后一位 result += chart[strs[i]] print(result)
測試運行結(jié)果:
如有更好更簡潔的想法,請留言
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)學運算技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計有所幫助。
相關(guān)文章
Python實現(xiàn)文件內(nèi)容批量追加的方法示例
這篇文章主要介紹了Python實現(xiàn)文件內(nèi)容批量追加的方法,結(jié)合實例形式分析了Python文件的讀寫相關(guān)操作技巧,需要的朋友可以參考下2017-08-08python PyQt5中QRadioButton的詳細使用教程與應用實戰(zhàn)
PyQt5是一個跨平臺的GUI工具包,用于創(chuàng)建具有Python綁定的Qt應用程序,在PyQt5中,QRadioButton是一個非常有用的控件,用于在用戶界面上提供單選選項,本文將詳細介紹QRadioButton的基本用法、常用屬性和方法,需要的朋友可以參考下2024-08-08Python解析網(wǎng)頁源代碼中的115網(wǎng)盤鏈接實例
這篇文章主要介紹了Python解析網(wǎng)頁源代碼中的115網(wǎng)盤鏈接實例,主要采用了正則表達式re模塊來實現(xiàn)該功能,需要的朋友可以參考下2014-09-09Django JSonResponse對象的實現(xiàn)
本文主要介紹了Django JSonResponse對象的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-03-03