Ver Mensaje Individual
  #17 (permalink)  
Antiguo 16/08/2010, 13:24
Avatar de abimaelrc
abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Competencias PHP

Para los que van a hacer más de los 1000, los símbolos son los mismos que los anteriores a excepción que tienen una línea encima y eso lo puedes lograr con CSS.
Código PHP:
Ver original
  1. /*
  2. Los que son de más de 1000 son
  3.     5000 -> '<span style="text-decoration: overline">V</span>
  4.     10000 -> '<span style="text-decoration: overline">X</span>
  5.     50000 -> '<span style="text-decoration: overline">L</span>
  6.     100000 -> '<span style="text-decoration: overline">C</span>
  7.     500000 -> '<span style="text-decoration: overline">D</span>
  8.     1000000 -> '<span style="text-decoration: overline">M</span>
  9. */
  10.  
  11. function assert_equals($string1, $string2)
  12. {
  13.     return($string1 == $string2);
  14. }
  15.  
  16. $tests = array(
  17.     4 => 'IV',
  18.     16 => 'XVI',
  19.     66 => 'LXVI',
  20.     21 => 'XXI',
  21.     67 => 'LXVII',
  22.     13 => 'XIII',
  23.     14 => 'XIV',
  24.     34 => 'XXXIV',
  25.     100 => 'C',
  26.     50 => 'L',
  27.     129 => 'CXXIX',
  28.     750 => 'DCCL',
  29.     933 => 'CMXXXIII',
  30.     1000 => 'M',
  31.     473 => 'CDLXXIII',
  32.     333 => 'CCCXXXIII',
  33.     70 => 'LXX',
  34.     705 => 'DCCV',
  35.     0 => '',
  36.     10888 => '<span style="text-decoration: overline">X</span>DCCCLXXXVIII',
  37.     888888 => '<span style="text-decoration: overline">D</span><span style="text-decoration: overline">C</span><span style="text-decoration: overline">C</span><span style="text-decoration: overline">C</span><span style="text-decoration: overline">L</span><span style="text-decoration: overline">X</span><span style="text-decoration: overline">X</span><span style="text-decoration: overline">X</span><span style="text-decoration: overline">V</span>MMMDCCCLXXXVIII',
  38.     888 => 'DCCCLXXXVIII',
  39.     789 => 'DCCLXXXIX',
  40.     987 => 'CMLXXXVII',
  41.     385 => 'CCCLXXXV',
  42.     1001 => 'MI',
  43.     3333 => 'MMMCCCXXXIII',
  44.     389 => 'CCCLXXXIX',
  45.     760 => 'DCCLX',
  46.     999 => 'CMXCIX',
  47. );
  48. echo "SALIDA DE romanNumber:<br />\n";
  49. echo "<table><tr><th>Prueba</th><th>Esperado</th><th>Salida</th><th>Resultado</th></tr>";
  50. foreach ($tests as $test => $result) {
  51.     $rresult = romanNumber($test);
  52.     echo "<tr><td>$test</td><td>$result</td><td>$rresult</td><td>". (assert_equals($rresult, $result) ? 'OK' : 'FAIL') . "</td></tr>";
  53. }
  54. echo "</table>";

Debe dar algo parecido a
Código PHP:
Ver original
  1. SALIDA DE romanNumber:
  2. Prueba  Esperado    Salida  Resultado
  3. 4   IV  IV  OK
  4. 16  XVI XVI OK
  5. 66  LXVI    LXVI    OK
  6. 21  XXI XXI OK
  7. 67  LXVII   LXVII   OK
  8. 13  XIII    XIII    OK
  9. 14  XIV XIV OK
  10. 34  XXXIV   XXXIV   OK
  11. 100 C   C   OK
  12. 50  L   L   OK
  13. 129 CXXIX   CXXIX   OK
  14. 750 DCCL    DCCL    OK
  15. 933 CMXXXIII    CMXXXIII    OK
  16. 1000    M   M   OK
  17. 473 CDLXXIII    CDLXXIII    OK
  18. 333 CCCXXXIII   CCCXXXIII   OK
  19. 70  LXX LXX OK
  20. 705 DCCV    DCCV    OK
  21. 0           OK
  22. 10888   XDCCCLXXXVIII   XDCCCLXXXVIII   OK
  23. 888888  DCCCLXXXVMMMDCCCLXXXVIII    DCCCLXXXVMMMDCCCLXXXVIII    OK
  24. 888 DCCCLXXXVIII    DCCCLXXXVIII    OK
  25. 789 DCCLXXXIX   DCCLXXXIX   OK
  26. 987 CMLXXXVII   CMLXXXVII   OK
  27. 385 CCCLXXXV    CCCLXXXV    OK
  28. 1001    MI  MI  OK
  29. 3333    MMMCCCXXXIII    MMMCCCXXXIII    OK
  30. 389 CCCLXXXIX   CCCLXXXIX   OK
  31. 760 DCCLX   DCCLX   OK
  32. 999 CMXCIX  CMXCIX  OK
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos