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


0