Transformar un año en digitos a numeros romanos



 - Escribir un programa que acepte un año escrito en cifras arábigas y visualice en escrito en números romanos, dentro del rango de 1500 a 2500.

V = 5, X = 10, L = 50, C = 100, D = 500, M = 1000

  1.   import cs1.Keyboard;
  2.  
  3.    public class ejerc12
  4.    {
  5.       public static void main (String[] args)
  6.       {
  7.       //Variables
  8.          String any;
  9.          char a1, a2, a3, a4;
  10.          int anys, longany = 0;
  11.    
  12.       //Introduci— de datos
  13.          System.out.print ("Introduce un a–o cualquiera: " );
  14.          any = Keyboard.readString();
  15.    
  16.        System.out.println ("");
  17.        
  18.       //Convertir el a–o a integer
  19.          longany = any.length();
  20.          a1 = any.charAt(0);
  21.          a2 = any.charAt(1);
  22.          a3 = any.charAt(2);
  23.          a4 = any.charAt(3);
  24.          anys = Integer.valueOf(any.substring(0,4)).intValue();
  25.        
  26.          //Condiciones
  27.          if (anys <= 2500 & anys >= 1500) {
  28.             switch (a1) {
  29.                case '1' : System.out.print( "M" );
  30.                   break;
  31.                case '2' : System.out.print( "MM" );
  32.                   break;
  33.                default : System.out.println( "Error a–o fuera de rango" );
  34.                   break;
  35.             }
  36.          
  37.             switch (a2) {
  38.                case '0' : System.out.print( "" );
  39.                   break;
  40.                case '1' : System.out.print( "C" );
  41.                   break;
  42.                case '2' : System.out.print( "CC" );
  43.                   break;
  44.                case '3' : System.out.print( "CCC" );
  45.                   break;
  46.                case '4' : System.out.print( "CD" );
  47.                   break;
  48.                case '5' : System.out.print( "D" );
  49.                   break;
  50.                case '6' : System.out.print( "DC" );
  51.                   break;
  52.                case '7' : System.out.print( "DCC" );
  53.                   break;
  54.                case '8' : System.out.print( "DCCC" );
  55.                   break;
  56.                case '9' : System.out.print( "CM" );
  57.                   break;
  58.                default : System.out.println( "Error, el nœmero centenar no existe" );
  59.                   break;
  60.             }
  61.          
  62.             switch (a3) {
  63.                case '0' : System.out.print( "" );
  64.                   break;
  65.                case '1' : System.out.print( "X" );
  66.                   break;
  67.                case '2' : System.out.print( "XX" );
  68.                   break;
  69.                case '3' : System.out.print( "XXX" );
  70.                   break;
  71.                case '4' : System.out.print( "XL" );
  72.                   break;
  73.                case '5' : System.out.print( "L" );
  74.                   break;
  75.                case '6' : System.out.print( "LX" );
  76.                   break;
  77.                case '7' : System.out.print( "LXX" );
  78.                   break;
  79.                case '8' : System.out.print( "LXXX" );
  80.                   break;
  81.                case '9' : System.out.print( "XC" );
  82.                   break;
  83.                default : System.out.println( "Error, el nœmero de decenas no existe" );
  84.                   break;
  85.             }
  86.          
  87.             switch (a4) {
  88.                case '0' : System.out.print( "" );
  89.                   break;
  90.                case '1' : System.out.print( "I" );
  91.                   break;
  92.                case '2' : System.out.print( "II" );
  93.                   break;
  94.                case '3' : System.out.print( "III" );
  95.                   break;
  96.                case '4' : System.out.print( "IV" );
  97.                   break;
  98.                case '5' : System.out.print( "V" );
  99.                   break;
  100.                case '6' : System.out.print( "VI" );
  101.                   break;
  102.                case '7' : System.out.print( "VII" );
  103.                   break;
  104.                case '8' : System.out.print( "VIII" );
  105.                   break;
  106.                case '9' : System.out.print( "IX" );
  107.                   break;
  108.                default : System.out.println( "Error, el nœmero unitario no existe" );
  109.                   break;
  110.             }
  111.          }
  112.          else {
  113.             System.out.println( "El a–o no est‡ dentro del rango" );
  114.          }
  115.       }
  116.    }

Redondear un número introducido


- El usuario / a entra cuatro dígitos A, B, C, D de un entero positivo N. Se desea redondear N a la centena más próxima y visualizar la salida. Por ejemplo si A = 2, B = 3, C = 6 y D = 2, entonces N será 2362 y el resultado valdrá 2400. Realizar el programa correspondiente.
 
  1.  import cs1.Keyboard;
  2.  
  3.    public class ejerc13
  4.    {
  5.       public static void main (String[] args)
  6.       {
  7.       //Variables
  8.          int n1, n2, n3, n4, n1b, n2b;
  9.          final int n0 = 0;
  10.       //Introduci—n de datos
  11.          System.out.println( "Introduce un nœmero entero: " );
  12.          n1 = Keyboard.readInt();
  13.    System.out.println( "Introduce otro numero: " );
  14.          n2 = Keyboard.readInt();
  15.    System.out.println( "Introduce otro numero m‡s por favor: " );
  16.          n3 = Keyboard.readInt();
  17.    System.out.println( "Introduce el ultimo numero: " );
  18.          n4 = Keyboard.readInt();
  19.  
  20.   //Operaciones
  21.          n1b = n1+1;
  22.    n2b = n2+1;
  23.  
  24.   //Muestra los datos
  25.    System.out.println( "El numero introducido es: " + n1 + n2 + n3 + n4 );
  26.    
  27.   //Condiciones
  28.   if (n1 >= 0) {
  29.    if (n2 >= 0 & n2 <= 9) {
  30.     if (n3 >= 0 & n3 <= 9) {
  31.      if (n4 >= 0 & n4 <= 9) {
  32.       //Redondeo
  33.       if (n3 >= 5) {
  34.        if (n2==9) {
  35.        System.out.println( "El numero redondeado es: " + n1b + n0 + n0 + n0);
  36.        }
  37.        else {
  38.        System.out.println( "El numero redondeado es: " + n1 + n2b + n0 + n0);
  39.        }
  40.       }
  41.       if (n3 < 5) {
  42.       System.out.println( "El numero redondeado es: " + n1 + n2 + n0 + n0);
  43.       }
  44.      }
  45.      else {
  46.      System.out.println( "El numero 4, ha de ser un numero entre 0 i 9" );
  47.      }
  48.     }
  49.     else {
  50.     System.out.println( "El numero 3, ha de ser un numero entre 0 i 9" );
  51.     }
  52.    }
  53.    else {
  54.    System.out.println( "El numero 2, ha de ser un numero entre 0 i 9" );
  55.    }
  56.   }
  57.   else {
  58.   System.out.println( "El numero 1, no puede ser negativo" );
  59.   }
  60.  
  61.    
  62.      
  63.    }
  64.   }