home *** CD-ROM | disk | FTP | other *** search
- #
- # R O M A N N U M E R A L S
- #
-
- # This program takes Arabic numerals from standard input and writes
- # the corresponding Roman numerals to standard outout.
-
- procedure main()
- local n
- while n := read() do
- write(roman(n) | "cannot convert")
- end
-
- procedure roman(n)
- local arabic, result
- static equiv
- initial equiv := ["","I","II","III","IV","V","VI","VII","VIII","IX"]
- integer(n) > 0 | fail
- result := ""
- every arabic := !n do
- result := map(result,"IVXLCDM","XLCDM**") || equiv[arabic+1]
- if find("*",result) then fail else return result
- end
-