20.11.06, 16:14
|
#22 (permalink)
|
Registriert seit: 14.04.06 Likes: 4 | Lösung in PHP incl. Subtraktions- und Rahmenregel PHP-Code: <?php $zahl_dez = $zahl_dez_backup = 1999; $zahl_rom = '';
$arrRoemisch = array('A' => 5000, '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 ); $arrRomLetter = array_keys($arrRoemisch); $arrRomNumber = array_values($arrRoemisch);
$i = 0; $multipl = 1; $firstrun = true; while($zahl_dez > 0) { if($zahl_dez >= 100000) { // Schreibweise mit Rahmen, siehe Wikipedia $multipl = 100000; if($firstrun) {$zahl_rom .= '|';} }elseif($multipl == 100000) { $multipl = 1; $zahl_rom .= '|'; $i = 0; } if($zahl_dez >= ($arrRomNumber[$i]*$multipl)) { $zahl_rom .= $arrRomLetter[$i]; $zahl_dez -= $arrRomNumber[$i]*$multipl; } if($zahl_dez < $arrRomNumber[$i]*$multipl) { $i++; } $firstrun = false; } if($multipl == 100000) { // Beseitigt Fehler: Am Ende kein Rahmen $zahl_rom .= '|'; } echo $zahl_dez_backup.' ist in römischen Zahlen '.$zahl_rom; ?> |
| |