Hoppla, hätt ich fast übersehen ![]()
AutoIt
Func _IntegerToRoman($sInteger)
Local $Return = ""
__IntegerToRoman(Int($sInteger), $Return)
Return $Return
EndFunc ;==>_IntegerToRoman
Func __IntegerToRoman($iInteger, ByRef $sRoman, $iLevel = 0)
Local $aRoman[][2] = [["M", 1000], ["CM", 900], ["D", 500], ["CD", 400], ["C", 100], ["XC", 90], ["L", 50], ["XL", 40], ["X", 10], ["IX", 9], ["V", 5], ["IV", 4], ["I", 1]]
For $i = 1 To (Floor($iInteger / $aRoman[$iLevel][1]))
$sRoman &= $aRoman[$iLevel][0]
Next
If $iInteger And $iLevel < UBound($aRoman) - 1 Then __IntegerToRoman(Mod($iInteger, $aRoman[$iLevel][1]), $sRoman, $iLevel + 1)
EndFunc ;==>__IntegerToRoman
Func _RomanToInteger($sRoman)
Local $aRoman[][2] = [["CM", 900], ["M", 1000], ["CD", 400], ["D", 500], ["XC", 90], ["C", 100], ["XL", 40], ["L", 50], ["IX", 9], ["X", 10], ["IV", 4], ["V", 5], ["I", 1]]
For $i = 0 To UBound($aRoman) - 1
$sRoman = StringReplace($sRoman, $aRoman[$i][0], " + " & $aRoman[$i][1])
Next
Return Execute($sRoman)
EndFunc ;==>_RomanToInteger
Alles anzeigen