20/08/2010, 20:43
|
| Colaborador | | Fecha de Ingreso: septiembre-2009 Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses Puntos: 214 | |
Códigos - Reto Romanos abimaelrc
Código PHP:
Ver original<?php function romanNumber($number){ // Array que contiene los valores númericos, tanto romanos como los regulares array(5000, '<span style="text-decoration: overline">V</span>'), array(10000, '<span style="text-decoration: overline">X</span>'), array(50000, '<span style="text-decoration: overline">L</span>'), array(100000, '<span style="text-decoration: overline">C</span>'), array(500000, '<span style="text-decoration: overline">D</span>'), array(1000000, '<span style="text-decoration: overline">M</span>'), ); // rN -> romanNumber $rN = ''; // Convertir el valor a string (otra forma de hacerlo es $num = (string)$number; $num = "$number"; while(true){ //Solamente verificar los valores que sean mayores de 0 if($num[0] > 0){ foreach($arr as $key => $roman){ // Verifica que el valor del array sea mayor o igual al valor númerico if($roman[0] >= $num){ // Asigna el valor del array, si el número está entre los valores del array if($roman[0] == $num){ $rN .= $roman[1]; } // Si el valor del primer caracter es menor o igual a 3, asigna el valor del array anterior en donde // se encuentre en el bucle por la cantidad de veces que dé el primer caracter elseif($num[0] <= 3){ $rN .= str_repeat($arr[$key - 1][1], $num[0]); } // Si el valor del primer caracter es igual a 4, asigna el valor del array anterior primero y el valor que // está en el momento del bucle elseif($num[0] == 4){ $rN .= $arr[$key - 1][1] . $roman[1]; } // Si el valor del primer caracter es menor o igual a 8, asigna el valor del array anterior y del que // está antes del anterior, por la cantidad de veces del residuo de $num[0] - 5 elseif($num[0] <= 8){ $rN .= $arr[$key - 1][1] . str_repeat($arr[$key - 2][1], ($num[0] - 5)); } // Si el valor del primer caracter es igual a 9, asigna el valor del array del que está antes del anterior // y del valor que está en el momento del bucle elseif($num[0] == 9){ $rN .= $arr[$key - 2][1] . $roman[1]; } // Evitar que continúe ya que encontró el valor break; } } } // Quita el primer caracter del valor de lo que esté en la variable $num al momento, // y así continúa con el proceso hasta que no queda valor //Verifica si ya no existe algún valor en la variable $num } return $rN; }
__________________ "Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com |