Einzelnen Beitrag anzeigen
Alt 14.06.09, 11:18   #40 (permalink)
Eydeet
 
Benutzerbild von Eydeet
 
Registriert seit: 14.04.06
Eydeet Leistung: Facit NTK
Likes: 4
Standard

Nochmal als Haskell-Programm:
Code:
rome num pos s = do
    let myVal = rv !! pos
    if myVal <= num
        then do
            rome (num - myVal) pos (s ++ (rc !! pos))
        else if num > 0
            then rome num (pos + 1) s
            else putStrLn s
    where
        rc = ["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"]
        rv = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1]

main = do
    putStrLn "Zahl: "
    n <- getLine
    rome (read n) 0 "Ergebnis: "
Wenn ich wieder Unsinn gebaut habe: Über konstruktive Verbesserungsvorschläge freue ich mich immer!
Eydeet ist offline   Mit Zitat antworten
 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61