#ini_set ('error_reporting', E_ALL);
#$pos=$_GET["pos"];
$letras=array("I","V","X","L","C","D","M");
$valores=array("1","5","10","50","100","500","1000");
$temp="";
$pos = key($valores);
function getU($unidad){
$unidades=array("", "uno","dos","tres","cuatro","cinco","seis","siete","ocho","nueve","diez");
return $unidades[$unidad];
}
function getD($decena,$unidad){
$rdo1="";
$decenas=array("", "diez", "veinte","treinta","cuarenta","cincuenta","sesenta","setenta","ochenta","noventa","cien");
$unidades=array("", "uno","dos","tres","cuatro","cinco","seis","siete","ocho","nueve","diez");
$rdo1=$decenas[$decena];
if($decena==1){
switch($unidad){
case 0:$rdo1=$decenas[1];break;
case 1:$rdo1=" once";break;
case 2:$rdo1=" doce";break;
case 3:$rdo1=" trece";break;
case 4:$rdo1=" catorce";break;
case 5:$rdo1=" quince";break;
case 6:$rdo1=" dieciséis";break;
default:$rdo1="dieci".$unidades[$unidad];break;
}
}elseif($decena>1){
if($unidad!=0){
switch($decena){
case 1:$rdo1="dieci";break;
case 2:$rdo1="veinti";break;
default:$rdo1.=" y ";break;
}
}else{
/*switch($decena){
case 2:$rdo1="veinte";break;
default:break;
}*/
}
/**/
if($decena==2){
switch($unidad){
case 0:$rdo1="veinte";break;
case 2:$rdo1="veintidós";break;
case 3:$rdo1="veintitrés";break;
case 6:$rdo1="veintiséis";break;
default:
$rdo1="veinti".$unidades[$unidad];break;
}
}else{
$rdo1.=$unidades[$unidad];
}
}
if($decena==0){$rdo1=$unidades[$unidad];}
return $rdo1;
}
function getC($p_centena){
$centena=substr($p_centena,-3,1);
$centenas=array("", "ciento", "doscientos","trescientos","cuatrocientos","quinientos","seiscientos","setecientos","ochocientos","novecientos","mil");
/*
aquí se produce otra irregularidad que habría q poner en la lección,
si es 100 es cien, no ciento.
*/
$rdo=$centenas[$centena]." ";
#if ($centena==1 && substr($p_centena,-2,2)=="00"){
if ($p_centena=="100"){$rdo="cien";}
#return $rdo." ";
return $rdo;
}
function getRN($i){
global $letras;
global $valores;
global $temp;
$rdo="";
$encontrado=false;
for($pos=0;$pos<6;$pos++){
if($i>=$valores[$pos] && $i<=$valores[$pos+1]){
$letra1=$letras[$pos];$valor1=$valores[$pos];
$letra2=$letras[$pos+1];$valor2=$valores[$pos+1];
$encontrado=true;
$break;
}
}
if ($encontrado){
/*if($i<=($valor1*3)){
//Dere
#$rdo=str_repeat($letra1,(($valor1-$i)<1)?1:$valor1 - $i; );
$rdo=str_repeat($letra1,$i);
}else{
//Izqui
#$rdo=$letra2.str_repeat($letra1,$valor1-$i);
$rdo=str_repeat($letra1,1+$i-($valor2)).$letra2;
}*/
#if($i>=($valor1)&&$i<=($valor2)){
#$l2=($i>str_repeat($letra2,$i);
/*$rep=$i/$valor1;
if($rep>3) {
}else{
$l2="";
$rdo=str_repeat($letra1,$rep).$l2;
}*/
$lenpos=strlen($i);
if($lenpos==1){$rdo.=getU(substr($i,-1,1));}
for($l=$lenpos;$l>=1;$l--){
#echo "
Procesando nº$i len:$lenpos";
switch($l){
#case 1:$rdo.=getU(substr($i,-1,1));break;
case 2:$rdo.=getD(substr($i,-2,1),substr($i,-1,1));break;
#case 3:$rdo.=getC(substr($i,-3,1));break;
case 3:$rdo.=getC(substr($i,-3,3));break;
}
}
#}
}else{
$rdo="Entre $letra1 y $letra2";
}
/*
$letra="I";
$klave=array_search($letra,$letras);
$valor=$valores[$klave];
$rdo=$i;
if($i<=3*$valor){
$rdo=str_repeat($letra,$i);
}elseif($i<=5){
$rdo=str_repeat($letra,5-$i)."V";
}elseif($i<=10){
$rep=$i-5;
if($rep<=3){
$rdo="V".str_repeat($letra,$rep);
}else{
$rdo=str_repeat($letra,10-$i)."X";
}
}else{
if($temp!=""){
$rdo="X_".$temp;
$temp="";
}else{
$temp=getRN($i-10);
}
}*/
#return $i." -> ".$rdo;
return $rdo;
}
function format($valor,$tam){
$l=strlen($valor);
if($l>$tam){
return str_repeat(" ",$l-$tam).$valor;
}else{
return $valor;
}
#return $valor;
}
$desde=1;
#$max=1000;
$max=0;
$lmax=strlen($max)+1;
?>
#echo "Números $desde hasta $max.
";
for($i=$desde;$i<$max;$i++){
#if ($i%10==0){echo "
$i -> ".getRN($i);}
echo "
".format($i,$lmax)." -> ".format(getRN($i),$lmax);
}
?>