Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
29
Task/Roman-numerals-Decode/BCPL/roman-numerals-decode.bcpl
Normal file
29
Task/Roman-numerals-Decode/BCPL/roman-numerals-decode.bcpl
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
get "libhdr"
|
||||
|
||||
let roman(s) = valof
|
||||
$( let digit(ch) = valof
|
||||
$( let ds = table 'm','d','c','l','x','v','i'
|
||||
let vs = table 1000,500,100,50,10,5,1
|
||||
for i=0 to 6
|
||||
if ds!i=(ch|32) then resultis vs!i
|
||||
resultis 0
|
||||
$)
|
||||
let acc = 0
|
||||
for i=1 to s%0
|
||||
$( let d = digit(s%i)
|
||||
if d=0 then resultis 0
|
||||
test i<s%0 & d<digit(s%(i+1))
|
||||
do acc := acc-d
|
||||
or acc := acc+d
|
||||
$)
|
||||
resultis acc
|
||||
$)
|
||||
|
||||
let show(s) be writef("%S: %N*N", s, roman(s))
|
||||
|
||||
let start() be
|
||||
$( show("MCMXC")
|
||||
show("MDCLXVI")
|
||||
show("MMVII")
|
||||
show("MMXXI")
|
||||
$)
|
||||
Loading…
Add table
Add a link
Reference in a new issue