Write a method that takes arabic numerals and returns roman numerals [^ pine].
arabic numerals | roman numerals |
---|---|
1 | I |
5 | V |
10 | X |
50 | L |
100 | C |
500 | D |
1000 | M |
arabic numerals | roman numerals |
---|---|
1 | I |
2 | II |
4 | IV |
5 | V |
6 | VI |
9 | IX |
10 | X |
11 | XI |
14 | XIV |
15 | XV |
19 | XIX |
38 | XXXVIII |
42 | XLII |
49 | XLIX |
51 | LI |
97 | XCVII |
99 | XCIX |
439 | CDXXXIX |
483 | CDLXXXIII |
499 | CDXCIX |
732 | DCCXXXII |
961 | CMLXI |
999 | CMXCIX |
1999 |
# coding: utf-8
def romanize(number)
a=[1000,900,500,400,100,90,50,40,10,9,5,4,1]
r=["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]
roman=[]
number=number.to_i
if (number > 0 and number < 4000) then
for i in 0..12 do
while number>=a[i] do
roman.push(r[i])
number-=a[i]
end
end
else
puts "Cannot be converted"
end
puts roman.join(' ')
end
puts "Please enter Arabic numerals"
n=gets
romanize(n)
Integers are Integer classes. Refer to hello class and extend Integer class to
999.to_roman #=> CMXCIX
Please return.
# coding: utf-8
def romanize(number)
a=[1000,900,500,400,100,90,50,40,10,9,5,4,1]
r=["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]
roman=[]
number=number.to_i
if (number > 0 and number < 4000) then
for i in 0..12 do
while number>=a[i] do
roman.push(r[i])
number-=a[i]
end
end
else
puts "Cannot be converted"
end
puts roman.join(' ')
end
puts "Please enter Arabic numerals"
n=gets
romanize(n)
[^ pine]: "First Programming", Chris Pine (Author), Shin Nishiyama (Translation), O'Reilly Japan (2006/7/24).
Recommended Posts