Java - Ayuda en este código sencillo

   
Vista:

Ayuda en este código sencillo

Publicado por Vanessa (2 intervenciones) el 08/07/2013 06:03:00
Hola, me encuentro programando el siguiente problema y al parecer es sencillo pero apenas inicio a programar y no se me ocurre una fórmula para realizar el siguiente ejercicio:

Máquina dispensadora de bebidas: todos los productos cuestan menos de 1 euro (100 centavos), la moneda de 1 euro es la mas alta que se puede insertar. Dado el monto insertado y el costo del producto, su programa debe regresar cambio utilizando el menor numero de monedas. Por ejemplo: si un producto cuesta 45 centavos y pagamos con 100 centavos, el resultado debería ser una serie de cuadros de mensaje (uno para cada moneda) de la sig forma:

La cantidad de monedas de 50c es: 1
La cantidad de monedas de 20c es: 0
La cantidad de monedas de 10c es: 0
La cantidad de monedas de 5c es: 1
La cantidad de monedas de 2c es: 0
La cantidad de monedas de 1c es: 0

Trabaje con centavos y utilice el operador % todas las veces que pueda REGLA: no utilizar ninguna estructura de control ciclo (if, for, while... etc) debe ser programado sólo con fórmulas


Aquí está el código que llevo pero las fórmulas para 20, 10, 5, 2 y 1 centavo están mal

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package prueba1;
 
import javax.swing.*;
 
public class Prueba1 {
 
    public static void main(String[] args) {
 
int costo, centavos50, centavos20, centavos10, centavos5, centavos2, centavos1, recibido, cambio;
       costo = Integer.parseInt(JOptionPane.showInputDialog("Costo del producto "));
       recibido = Integer.parseInt(JOptionPane.showInputDialog("Monto insertado "));
       cambio = recibido - costo;
       centavos50 = cambio / 50;
       centavos20 = (cambio / 20) % (cambio / 50) ;
       centavos10 = (cambio / 10) % (cambio / 20 +);
       centavos5 = (cambio / 5) % (cambio / 10);
       centavos2 = (cambio / 2) % (cambio / 5);
       centavos1 =(cambio / 1) % (cambio / 2);
       JOptionPane.showMessageDialog(null,"Su cambio es: " + cambio +
               "\nLa cantidad de monedas de 50c es: " + centavos50 +
               "\nLa cantidad de monedas de 20c es: " + centavos20 +
               "\nLa cantidad de monedas de 10c es: " + centavos10 +
               "\nLa cantidad de monedas de 5c es: " + centavos5 +
               "\nLa cantidad de monedas de 2c es: " + centavos2 +
               "\nLa cantidad de monedas de 1c es: " + centavos1);
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda en este código sencillo

Publicado por Carlos (35 intervenciones) el 09/07/2013 04:50:19
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int costo, centavos50, centavos20, centavos10, centavos5, centavos2, centavos1, recibido, cambio;
      costo = Integer.parseInt(JOptionPane.showInputDialog("Costo del producto "));
      recibido = Integer.parseInt(JOptionPane.showInputDialog("Monto insertado "));
      cambio = recibido - costo;
      centavos50 = cambio / 50;
      cambio=cambio % 50;
      centavos20 = cambio / 20;
      cambio = cambio %20;
      centavos10 = cambio / 10;
      cambio = cambio % 10;
      centavos5 = cambio / 5;
      cambio = cambio % 5;
      centavos2 = cambio / 2;
      centavos1 = cambio % 2;
 
      JOptionPane.showMessageDialog(null,"Su cambio es: " + (recibido - costo) +
              "\nLa cantidad de monedas de 50c es: " + centavos50 +
              "\nLa cantidad de monedas de 20c es: " + centavos20 +
              "\nLa cantidad de monedas de 10c es: " + centavos10 +
              "\nLa cantidad de monedas de 5c es: " + centavos5 +
              "\nLa cantidad de monedas de 2c es: " + centavos2 +
              "\nLa cantidad de monedas de 1c es: " + centavos1);

Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Ayuda en este código sencillo

Publicado por Vanessa (2 intervenciones) el 09/07/2013 05:10:05
wow!!!! ahora que lo veo es cuando digo: dahh!!!!!

Muchísimas gracias por tomarte el tiempo para responder, apenas inicio a programar y la respuesta no fue tan obvia para mí...

Te lo agradezco muchísimo!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar