Python ծրագիր՝ ամբողջ թիվը հռոմեականի վերածելու համար
Հռոմեական թվերը թվային համակարգ է, որն առաջացել է Հին Հռոմում: Նրանք լայնորեն օգտագործվում էին ողջ Հռոմեական կայսրությունում և շարունակում են օգտագործվել որոշակի համատեքստերում այսօր: Հռոմեական թվերը հիմնված են լատինական այբուբենի տառերի համակցության վրա՝ թվային արժեքները ներկայացնելու համար։
Հռոմեական թվերով օգտագործվող հիմնական նշանները հետևյալն են
I: 1
V: 5
X: 10
L: 50
C: 100
D: 500
M: 1000
Ավելի մեծ թվեր ձևավորելու համար այս նշանները միավորվում են տարբեր ձևերով: Կիրառվում են հետևյալ կանոնները -
Նշանները սովորաբար գրվում են ձախից աջ արժեքի նվազման կարգով:
Եթե ավելի փոքր արժեքի նշանը հայտնվում է ավելի մեծ արժեքի խորհրդանիշից առաջ, փոքր արժեքը հանվում է: Օրինակ, IV-ը ներկայացնում է 4 (5 - 1), իսկ IX-ը ներկայացնում է 9 (10 - 1):
-
Եթե ավելի փոքր արժեքի նշան է հայտնվում ավելի մեծ արժեքի խորհրդանիշից հետո, ապա ավելացվում է ավելի փոքր արժեք: Օրինակ՝ VI-ը ներկայացնում է 6 (5 + 1), իսկ XI-ը՝ 11 (10 + 1):
Խորհրդանիշը կարող է կրկնվել մինչև երեք անգամ անընդմեջ՝ այդ արժեքի ավելացումը ներկայացնելու համար: Օրինակ, III-ը ներկայացնում է 3 (1 + 1 + 1), իսկ XXX-ը ներկայացնում է 30 (10 + 10 + 10):
Սիմվոլի վերևում տեղադրված բարը բազմապատկում է դրա արժեքը 1000-ով: Օրինակ, V̄-ը ներկայացնում է 5000:
Ամբողջ թիվը հռոմեական թվի վերածելիս ընդհանուր գործընթացը ներառում է տվյալ թվից փոքր կամ հավասար ամենամեծ նշանի գտնելը և այն հռոմեական թվանշանին ավելացնելը։ Գործընթացը կրկնվում է մնացածի համար, մինչև ամբողջ թիվը փոխարկվի:
Այս հոդվածում մենք կտեսնենք ամբողջ թիվը հռոմեական թվի փոխարկելու տարբեր մոտեցումներ:
Մոտեցում
Ստորև ներկայացված են ամբողջ թիվը հռոմեական թվի վերածելու քայլերը
Սահմանեք հռոմեական թվային նշանները և դրանց համապատասխան արժեքները: Այս նշանները ներառում են I, V, X, L, C, D և M, որոնք ներկայացնում են համապատասխանաբար 1, 5, 10, 50, 100, 500 և 1000:
Սկսեք դատարկ տողից՝ հռոմեական թվերի ներկայացումը պահելու համար:
Կրկնեք նշանների միջով ամենամեծից մինչև ամենափոքր արժեքը:
Ստուգեք, արդյոք ընթացիկ խորհրդանիշի արժեքը փոքր է կամ հավասար է տվյալ ամբողջ թվին:
-
Եթե այդպես է, ապա ամբողջ թվից հանեք սիմվոլի արժեքը և կցեք խորհրդանիշը հռոմեական թվային տողին:
Կրկնեք վերը նշված քայլը, քանի դեռ ընթացիկ խորհրդանիշի արժեքը փոքր է կամ հավասար է մնացած ամբողջ թվին:
Անցեք հաջորդ խորհրդանիշին և կրկնեք 5-րդ և 6-րդ քայլերը, մինչև բոլոր նշանները ստուգվեն:
Վերադարձրեք հռոմեական թվերի տողը:
Օգտագործելով Tuples-ի ցուցակը
Այս մոտեցումը օգտագործում է ցուցակ՝ հռոմեական թվային նշանները պահելու համար դրանց համապատասխան արժեքների հետ միասին, որոնք ներկայացված են որպես կրկնակիներ:
Օրինակ
Ահա Python ծրագիր, որը փոխակերպում է ամբողջ թիվը իր համապատասխան հռոմեական թվին:
def integer_to_roman(num):
symbols = [
(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 = ''
for value, symbol in symbols:
while num >= value:
roman += symbol
num -= value
return roman
# Define the input integer
number = 14
print('Input integer number:',number)
roman_numeral = integer_to_roman(number)
print(f"The Roman numeral representation of {number} is: {roman_numeral}")
Արդյունք
Input integer number: 14
The Roman numeral representation of 14 is: XIV
Օգտագործելով բառարան
Այս մոտեցումը օգտագործում է Python բառարանի տվյալների կառուցվածքը՝ հռոմեական թվային նշանները պահելու համար նրանց համապատասխան արժեքներով, որոնք ներկայացված են որպես բանալին-արժեք զույգեր:
Օրինակ
Տեսնենք բառարանի միջոցով ամբողջ թիվն իր համապատասխան հռոմեական թվին փոխարկելու ստորև բերված օրինակը:
def integer_to_roman(num):
symbols = {
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 = ''
for value in sorted(symbols.keys(), reverse=True):
while num >= value:
roman += symbols[value]
num -= value
return roman
# Define the input integer
number = 231
print('Input integer number:',number)
roman_numeral = integer_to_roman(number)
print(f"The Roman numeral representation of {number} is: {roman_numeral}")
Արդյունք
Input integer number: 231
The Roman numeral representation of 231 is: CCXXXI
Օգտագործելով հռոմեական գրադարանը
Python-ում ամբողջ թվերը հռոմեական թվերի փոխարկելու համար կարելի է օգտագործել հռոմեական գրադարանը: դրա համար նախ պետք է գրադարանը տեղադրել՝ օգտագործելով pip հրամանը (pip install roman): Տեղադրվելուց հետո հռոմեական գրադարանից toRoman() ֆունկցիան կարող է օգտագործվել ամբողջ թիվն իր համապատասխան հռոմեական թվին փոխարկելու համար:
Օրինակ
Այս օրինակում մենք կվերափոխենք 123 թիվը իր հռոմեական թվային ներկայացմանը, օգտագործելով toRoman() ֆունկցիան:
# import the roman module
import roman
def integer_to_roman(num):
return roman.toRoman(number)
# Define the input integer
number = 121
print('Input integer number:',number)
roman_numeral = integer_to_roman(number)
print(f"The Roman numeral representation of {number} is: {roman_numeral}")
Արդյունք
Input integer number: 121
The Roman numeral representation of 121 is: CXXI