[Aporte] Java-Leer cantidades (consola)

Iniciado por Senior++, 14 Julio 2012, 18:08 PM

0 Miembros y 1 Visitante están viendo este tema.

Senior++

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 (java) [Seleccionar]
package empezarr;
public class Empezarr {
   public static void main(String[] args) {
    int numero = 505;
    int total = 0;
    while(numero>=200){
   total = total +1 ;
   numero-=200;
   }
    System.out.println(total+" en caja de 200");

    while(numero>=100){
        total = 0;
        total = total + 1;    
                if (numero>=100 && numero<200){
                    numero-=100;
                System.out.println(total+" en caja de 100");
                }      
    }
     while(numero>=50){
     total = 0;
     total=total+1;
             if(numero>=50 && numero<100){
                 numero-= 50;
             System.out.println(total+" en caja de 50");
             }
     }
     while(numero>=20){
     total = 0;
     total=total+1;
             if(numero>=20 && numero<50){
                 numero-= 20;
             System.out.println(total+" en caja de 20");
             }
     }
    while(numero>=10){
     total = 0;
     total=total+1;
             if(numero>=10 && numero<20){
                 numero-= 10;
             System.out.println(total+" en caja de 10");
             }
     }
    if(numero<=10 && numero>0){
    System.out.println(numero+" euros sobra");
    }
     }
   }


Saludos y cuando haga el programa con menos código pues lo pongo aquí debajo de este :D
Vendo cuenta de LEAGUE OF LEGENDS lvl 30, EU west, muy barata

Senior++

Bueno para mi es imposible hacerlo con operador ternario no tengo ni idea :xD

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

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í:

2 en caja de 200
1en caja de 100
2 en caja de 20


Aquí el código donde me da error:

Código (java) [Seleccionar]
while(numero>=20){
      total = 0;
      total=total+1;
              mensaje = (numero>=20 && numero<50)? " en la caja 20":"";
     
     
                  numero-= 20;
           System.out.println(total+mensaje);
               }


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
Vendo cuenta de LEAGUE OF LEGENDS lvl 30, EU west, muy barata

hucruz

#2
El operador ternario no tiene inconveniente en ser usado en System.out.println.

Podrias intentar esto:

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.


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":""));
}
}