Somatório de notas (cédulas) em um caixa eletrônico

Olá, gostaria de uma ajuda, estou com um problema, que estou fazendo um trabalho que tenho meio que dizer quando notas saiam do caixa na hora do saque, por exemplo: 550 reais são 5 notas de 100 e 1 de 50, não sei fazer isso, unica coisa que consegui é tipo informar o valor de 550 e sai assim 100 100 100 100 100 50, por favor me ajudem?

Vc precisa ir fazendo o teste com divisões pelo valor da cédula maior para a menor:

550 / 100 = 5.5 - Pega só a parte inteira, são 5 notas de 100 q dá 500, sobra 50 ai segue na mesma lógica.

Olá Menguer, pelo que entendi acho que esse código deve resolver.

public class Principal {
	
	public static void calcular(double valor){
		int[] cedulas = {100,50,25,10,5,2};
		
		for(int i = 0; i < cedulas.length; i++){
			if( valor >= cedulas[i] ){
				System.out.println( (int)valor/cedulas[i] + " notas de " + cedulas[i]);
				valor = valor % cedulas[i];
			}
			
		}
		System.out.println("Sobram: " +valor);
	}
	
	public static void main(String[] args) {
		calcular(1553.5);
	}
}

Espero que tenha ajudado.

Boa tarde!

Eu sou iniciante e estou aprendendo, eu fiz um programa em caixa eletrônico. Ele está funcionando, porém eu tenho uma dúvida: como faço para bloquear uma mensagem quando a nota não será utilizada no saque, por exemplo: eu vou sacar R$ 238,00. Ele vai mostrar as mensagens de todas as notas.

Ex:
2 notas de 100
0 notas de 50 -> essa nota não vai ser utilizada, então como faço para ‘bloquear’ essa mensagem dentro do else?
3 notas de 10
1 notas de 5
3 notas de 1

Meu código:

usuario = new Scanner(System.in);

	System.out.println("Digite o valor que você deseja sacar. Valor mínimo: R$10,00. Valor máximo: R$600,00");
	int valor = usuario.nextInt();
	
	int nota_100 = 100;
	int nota_50 = 50;
	int nota_10 = 10;
	int nota_5 = 5;
	int nota_1 = 1;	

	if(valor >= 10 && valor <= 600) {
		if(nota_100 > 0) {
			nota_100 = valor / 100; 
			valor = valor % 100;   
			System.out.println(nota_100 + " notas de 100");
		} 
		if(nota_50 > 0) {
			nota_50 = valor / 50;
			valor = valor % 50;
			System.out.println(nota_50 + " notas de 50");
		}
		if(nota_10 > 0) {
			nota_10 = valor / 10;
			valor = valor % 10;
			System.out.println(nota_10 + " notas de 10");
		}if(nota_5 > 0) {
			nota_5 = valor / 5;
			valor = valor % 5;
			System.out.println(nota_5 + " notas de 5");
		}if(nota_1 > 0) {
			nota_1 = valor / 1;
			valor = valor % 1;
			System.out.println(nota_1 + " notas de 1");
		}
	}else {
		System.out.println("Não é possível realizar o saque");
	}	

Criei somente no método main mesmo, alguém pode me ajudar? :slight_smile:

1 curtida

No seus ifs, você está comparando as variáveis nota_100, nota_50 com zero. Elas sempre serao maior que zero, pois o valor delas é fixo. O que precisa fazer é comparar a variável valor com cada nota:

   if (valor >= nota_100) { }
   if (valor >= nota_50) { }

Nossa, deu certo! Obrigada! :+1: