Die Bonusaufgabe schaue ich mir morgen mal noch an:
AutoIt
Func _IntegerToRoman($num)
Local Static $4 = ["", "M", "MM", "MMM", "MMMM"]
Local Static $3 = ["", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"]
Local Static $2 = ["", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"]
Local Static $1 = ["", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"]
Return $4[Int($num / 1000)] & _
$3[Int(Mod($num, 1000) / 100)] & _
$2[Int(Mod($num, 100) / 10)] & _
$1[Mod($num, 10)]
EndFunc
Func _RomanToInteger($roman)
Local Static $lookup = "M1000D500C100L50X10V5I1"
Local $value = 0, $last = 0, $num
For $i = 1 To StringLen($roman)
$num = Int(StringMid($lookup, StringInStr($lookup, StringMid($roman, $i, 1)) + 1))
$value += $num - 2 * ($num > $last) * $last
$last = $num
Next
Return $value
EndFunc
Alles anzeigen