Conversion chiffres arabes en chiffre romain
Posté : 23 oct. 2008, 18:02
Bonjour,
J ai un code de conversion de chiffres arabes en chiffres romains à faire et je bloque sur un truc de débutant.
J ai divers chiffres dans un tableau, et je souhaites récuperer que ceux dont la somme correspond au nombre que je vais convertir.
Mon tableau contient les chiffres
Pour l'instant j'en suis à :
je parcours tout le tableau, je prend l element en dessous de mon chiffre. J additionne cet element avec celui d apres. Et c est apres que je en sais plus comment faire.
Merci
J ai un code de conversion de chiffres arabes en chiffres romains à faire et je bloque sur un truc de débutant.
J ai divers chiffres dans un tableau, et je souhaites récuperer que ceux dont la somme correspond au nombre que je vais convertir.
Mon tableau contient les chiffres
$aNbreElem = array(1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1);
Donc par exemple, si je veux faire 16, je dois prendre 10, 5 et 1. Et je bloque completement làd essus ><.Pour l'instant j'en suis à :
je parcours tout le tableau, je prend l element en dessous de mon chiffre. J additionne cet element avec celui d apres. Et c est apres que je en sais plus comment faire.
function ConvertArabRomain($chiffreArabe){
$chiffreArabe; //Chiffre arabe en entree
$chiffreRomain = ""; //chiffre romain en sortie
$aNbreElem = array(1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1);
$chiffreRomElem = array("1000" => "M", "900" => "CM",
"500" => "D", "400" => "CD",
"100" => "C", "90" => "XC",
"50" => "L", "40" => "XL",
"10" => "X", "9" => "IX",
"5" => "V", "4" => "IV",
"1" => "I" );
if (1 <= $chiffreArabe && $chiffreArabe <= 3999) {
//Parcours du tableau
for($i = 0; $i<count($aNbreElem);$i++){
//On ne selectionne que les elements inferieurs au chiffre à convertir
if($chiffreArabe > $aNbreElem[$i]){
$somElem = $aNbreElem[$i] + $aNbreElem[$i+1];
if($somElem > $chiffreArabe ){
$result += $aNbreElem[$i];
}
//$result += $aNbreElem[$i];
$result .= $result.' ';
}//fin if
}//fin for
echo $result; // LA CONVERSION AVEC L AUTRE TABLEAU SERA ICI
//$this->m_sMessage = '<p>Conversion de '.$chiffreArabe.' en chiffre romain : '.$chiffreRomain.'</p>';
} else {
$this->m_sMessage = 'Veuillez rentrer un chiffre entre 1 et 3999 svp.';
echo $this->m_sMessage;
}//fin methode
Par la suite, avec un autre tableau, je récupere donc la suite de chiffre (par ex : 16 : 10 - 5 - 1) que je convertirai en chiffre romain pour avoir XVIMerci