RosettaCodeData/Task/Roman-numerals-Encode/Nim/roman-numerals-encode.nim

18 lines
584 B
Nim

import strutils
const nums = [(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")]
proc toRoman(x): string =
var x = x
result = ""
for a,r in items(nums):
result.add(repeatStr(x div a, r))
x = x mod a
for i in [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,25,30,40,
50,60,69,70,80,90,99,100,200,300,400,500,600,666,700,800,900,
1000,1009,1444,1666,1945,1997,1999,2000,2008,2010,2011,2500,
3000,3999]:
echo toRoman(i)