ciao a tutti, ho un problema..
non so come si fa ad ordinare in ordine crescente o decrescente una serie di numeri a carattere romano.. del tipo: III, IV, V, ...
help please![]()
ciao a tutti, ho un problema..
non so come si fa ad ordinare in ordine crescente o decrescente una serie di numeri a carattere romano.. del tipo: III, IV, V, ...
help please![]()
perché non li converti in numeri interi, così da ordinarli facilmente, e poi li riconverti in numeri romani all'interno degli script?
ok, ci ho pensato nel frattempo con questa funzione
solo che.. mi avanza uno zero alla fine..Codice PHP:
function numero_romano($numero)
{
while ($numero >= 1000)
{
echo "M";
$numero = $numero -1000;
}
while ($numero >= 900)
{
echo "CM";
$numero = $numero -900;
}
while ($numero >= 500)
{
echo "D";
$numero = $numero -500;
}
while ($numero >= 400)
{
echo "CD";
$numero = $numero -400;
}
while ($numero >= 100)
{
echo "C";
$numero = $numero -100;
}
while ($numero >= 90)
{
echo "XC";
$numero = $numero -90;
}
while ($numero >= 50)
{
echo "L";
$numero = $numero -50;
}
while ($numero >= 40)
{
echo "XL";
$numero = $numero -40;
}
while ($numero >= 10)
{
echo "X";
$numero = $numero -10;
}
while ($numero >= 9)
{
echo "IX";
$numero = $numero -9;
}
while ($numero >= 5)
{
echo "V";
$numero = $numero -5;
}
while ($numero >= 4)
{
echo "IV";
$numero = $numero -4;
}
while ($numero >= 1)
{
echo "I";
$numero = $numero -1;
}
return $numero;
}
$numero = 2995;
echo numero_romano($numero);
MMCMXCV0
puoi aiutarmi a sistemarla?
grazie![]()
![]()
Soluzione 1:
Soluzione2:Codice PHP:
function numero_romano($numero)
{
$romano = '';
while ($numero >= 1000)
{
$romano .= "M";
$numero = $numero -1000;
}
while ($numero >= 900)
{
$romano .= "CM";
$numero = $numero -900;
}
while ($numero >= 500)
{
$romano .= "D";
$numero = $numero -500;
}
while ($numero >= 400)
{
$romano .= "CD";
$numero = $numero -400;
}
while ($numero >= 100)
{
$romano .= "C";
$numero = $numero -100;
}
while ($numero >= 90)
{
$romano .= "XC";
$numero = $numero -90;
}
while ($numero >= 50)
{
$romano .= "L";
$numero = $numero -50;
}
while ($numero >= 40)
{
$romano .= "XL";
$numero = $numero -40;
}
while ($numero >= 10)
{
$romano .= "X";
$numero = $numero -10;
}
while ($numero >= 9)
{
$romano .= "IX";
$numero = $numero -9;
}
while ($numero >= 5)
{
$romano .= "V";
$numero = $numero -5;
}
while ($numero >= 4)
{
$romano .= "IV";
$numero = $numero -4;
}
while ($numero >= 1)
{
$romano .= "I";
$numero = $numero -1;
}
return $romano;
}
togli il comando "return $numero" e chiama la funzione senza echo()
P.S. non ho controllato che la procedura sia corretta... è solo una risposta all'ultima domanda...
eiyen ho provato con la prima soluzione e funziona benissimo!
grazie mille
cià![]()
![]()