Alcalina
Código PHP:
Ver original<?php
function romanNumber($num) {
if ($num<1 || $num>10000) {return "∞";}
else
{
// Cadena a devolver
$resultado = "";
// Eliminamos decimales
// Creamos el array con los numeros romanos, lo escribimos de mayor a menor porque orden de miles,centenas,decenas,unidades.
$romanos = 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"); // Vamos recorriendo el vector con el numero que nos han pasado
foreach ($romanos as $numero => $romano)
{
// Dividimos para encontrar coincidencias entre el numero que nos han pasado y el vector, y eliminamos decimales
$coincidencias = intval($num/$numero); // Escribimos en el resultado el numero de coincidencias que hemos encontrado en el numero
$resultado .= str_repeat($romano, $coincidencias); // Le restamos el numero ya traspasado a romano
$num = $num % $numero;
}
// Devolvemos el resultado
return $resultado;
}
}
?>