Einzelnen Beitrag anzeigen
Alt 20.11.06, 16:14   #22 (permalink)
Eydeet
 
Benutzerbild von Eydeet
 
Registriert seit: 14.04.06
Eydeet Leistung: Facit NTK
Likes: 4
Standard

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&ouml;mischen Zahlen '.$zahl_rom;
?>
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