Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
12
Task/Roman-numerals-Decode/Scheme/roman-numerals-decode-1.ss
Normal file
12
Task/Roman-numerals-Decode/Scheme/roman-numerals-decode-1.ss
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
(use gauche.collection) ;; for fold2
|
||||
|
||||
(define (char-val char)
|
||||
(define i (string-scan "IVXLCDM" char))
|
||||
(* (expt 10 (div i 2)) (expt 5 (mod i 2))))
|
||||
|
||||
(define (decode roman)
|
||||
(fold2
|
||||
(lambda (n sum prev-val)
|
||||
(values ((if (< n prev-val) - +) sum n) (max n prev-val)))
|
||||
0 0
|
||||
(map char-val (reverse (string->list roman)))))
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
(for-each
|
||||
(^s (format #t "~7d: ~d\n" s (decode s)))
|
||||
'("MCMLVI" "XXC" "MCMXC" "XXCIII" "IIIIX" "MIM" "LXXIIX"))
|
||||
Loading…
Add table
Add a link
Reference in a new issue