Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Senior++ en 14 Julio 2012, 18:08 pm



Título: [Aporte] Java-Leer cantidades (consola)
Publicado por: Senior++ en 14 Julio 2012, 18:08 pm
Bueno aquí os traigo un nuevo aporte, pero antes de publicarlo tengo que decir 2 cosas.

1.- El código que voy a poner ahora es por consola y lo intentare reducir con operador ternario(cuando tenga un poco mas de tiempo lo publicare aquí en el foro. ::)


2.- Ejemplo de lo que hace el programa: pongo 480 ej. y las otras 5 cajas me diara cuantos billetes de cada uno retirr utilizando la cantidad menos de billetes a retirar por este caso seria  2 en caja de 200, 1 en caja de 50, 1 en caja de 20 y 1 en caja de 10.

Aquí el aporte:

Código
  1. package empezarr;
  2. public class Empezarr {
  3.    public static void main(String[] args) {
  4.     int numero = 505;
  5.     int total = 0;
  6.     while(numero>=200){
  7.    total = total +1 ;
  8.    numero-=200;
  9.    }
  10.     System.out.println(total+" en caja de 200");
  11.  
  12.     while(numero>=100){
  13.         total = 0;
  14.         total = total + 1;    
  15.                 if (numero>=100 && numero<200){
  16.                     numero-=100;
  17.                 System.out.println(total+" en caja de 100");
  18.                 }      
  19.     }
  20.      while(numero>=50){
  21.      total = 0;
  22.      total=total+1;
  23.              if(numero>=50 && numero<100){
  24.                  numero-= 50;
  25.              System.out.println(total+" en caja de 50");
  26.              }
  27.      }
  28.      while(numero>=20){
  29.      total = 0;
  30.      total=total+1;
  31.              if(numero>=20 && numero<50){
  32.                  numero-= 20;
  33.              System.out.println(total+" en caja de 20");
  34.              }
  35.      }
  36.     while(numero>=10){
  37.      total = 0;
  38.      total=total+1;
  39.              if(numero>=10 && numero<20){
  40.                  numero-= 10;
  41.              System.out.println(total+" en caja de 10");
  42.              }
  43.      }
  44.     if(numero<=10 && numero>0){
  45.     System.out.println(numero+" euros sobra");
  46.     }
  47.      }
  48.    }

Saludos y cuando haga el programa con menos código pues lo pongo aquí debajo de este :D


Título: Re: [Aporte] Java-Leer cantidades (consola)
Publicado por: Senior++ en 15 Julio 2012, 13:08 pm
Bueno para mi es imposible hacerlo con operador ternario no tengo ni idea :xD

ya que por ejemplo me sale así en la consola:

Código:
2 en caja de 200
1en caja de 100
1 en caja de 20
1 en caja de 20

lo que quiero que me salga es así:

Código:
2 en caja de 200
1en caja de 100
2 en caja de 20

Aquí el código donde me da error:

Código
  1. while(numero>=20){
  2.      total = 0;
  3.      total=total+1;
  4.              mensaje = (numero>=20 && numero<50)? " en la caja 20":"";
  5.  
  6.  
  7.                  numero-= 20;
  8.           System.out.println(total+mensaje);
  9.               }

Entonces lo que me sale en consola es obvio.. ¿entonces no se podría hacer el programa que hice con operador ternario? yo no logro conseguirlo, por el simple hecho de que no permite el System.out.print (si se pudiera lo sabría hacer).

Saludos


Título: Re: [Aporte] Java-Leer cantidades (consola)
Publicado por: hucruz en 16 Julio 2012, 06:26 am
El operador ternario no tiene inconveniente en ser usado en System.out.println.

Podrias intentar esto:
Código:
 total=0;
 while(numero>=20){
      total=total+1;
      numero-= 20;
      }
    mensaje = (total>0)? total+" en la caja 20":"";
    System.out.println(mensaje);

como sugerencia podrias hacerlo asi.

Código:
public class Empezarr{
public static void main(String []args){
long cantidad=393;
long [] billetes={200,100,50,20,10};
for(long b:billetes){
int cont=0;
while(cantidad>=b){
cont++;
cantidad-=b;
}
if(cont!=0) System.out.println(cont+" en caja de "+b);
}
System.out.println(((cantidad>0)?cantidad+" Euros de sobra":""));
}
}