package ejercicio;
import java.util.Scanner;
/**
*
* @author Sarurai
*/
public class Ejercicio {
public boolean calcular(int monto, int[] valor, int[] num) {
int cont = dineroTotal(valor, num);
if (cont >= monto) {
int[] cambio = this.cambio(monto, valor, num);
for (int i = 0; i < cambio.length; i++) {
System.out.println(valor[i] + " = " + cambio[i] + " unidad(es)");
}
return true;
} else {
return false;
}
}
private int[] cambio(int monto, int[] valor, int[] num) {
int[] moneda = new int[valor.length];
for (int i = 0; i < valor.length; i++) {
while (valor[i] <= monto && num[i] > 0) {
moneda[i]++;
num[i]--;
monto = monto - valor[i];
}
}
return moneda;
}
public int dineroTotal(int[] valor, int[] num) {
int cont = 0;
for (int i = 0; i < num.length; i++) {
cont += num[i] * valor[i];
}
return cont;
}
public static void main(String[] args) {
Ejercicio metodo = new Ejercicio();
Scanner leer = new Scanner(System.in);
int[] moneda = {100, 50, 10, 5, 1};// monedad
int[] cantidadMoneda = {((int) (Math.random() * 100)), (int) (Math.random() * 200),
(int) (Math.random() * 400), (int) (Math.random() * 600), (int) (Math.random() * 1000)};//cantidad de monedas aleatorias
//Quiero en monedas
System.out.println("El dinero total de la maquina expendedora es: " + metodo.dineroTotal(moneda, cantidadMoneda));
System.out.println("Ingrese la cantida que quiere cambiar ");
int saldo = leer.nextInt();
System.out.println("Vuelto: " + saldo);
boolean exito = metodo.calcular(saldo, moneda, cantidadMoneda);
System.out.println("Solucion: " + exito);
}
}
Corrida
No hay comentarios:
Publicar un comentario