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

5 respostas
programaçãojava
M

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?

5 Respostas

R

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.

L

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.

C

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:

A

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) { }
C

Nossa, deu certo! Obrigada! :+1:

Criado 22 de novembro de 2017
Ultima resposta 6 de dez. de 2017
Respostas 5
Participantes 5