Um banco está desenvolvendo um sistema para caixas eletrônicos e precisa de um programa que simule o saque de dinheiro. O caixa deve entregar o valor solicitado pelo usuário usando a menor quantidade possível de cédulas. As cédulas disponíveis são: R$ 100, R$ 50, R$ 20, R$ 10, R$ 5 e R$ 2.
Crie um programa que solicite ao usuário o valor do saque e calcule quantas cédulas de cada tipo serão necessárias para entregar o valor. O programa deve garantir que o valor solicitado seja válido (múltiplo de 2, já que não há cédulas de R$ 1) e tratar erros de entrada caso não seja digitado um valor numérico válido.
Exemplo de entrada:
Digite o valor do saque: 188
Saída esperada:
Cédulas entregues:
1 de R$ 100
1 de R$ 50
1 de R$ 20
1 de R$ 10
1 de R$ 5
1 de R$ 2
Caso faça um saque de valor não válido (ímpar):
Erro: O valor deve ser múltiplo de 2.
cedulas = [100, 50, 20, 10, 5, 2]
try:
valor_saque = int(input("Digite o valor do saque: "))
if valor_saque % 2 != 0:
print("Erro: O valor deve ser múltiplo de 2.")
else:
print(f"\nCédulas entregues para R$ {valor_saque}:")
for cedula in cedulas: # A lógica gulosa faria com que sacasse R$187 dos R$188 solicitados, então assim verificando o numero 5 unico impar nas opções se o resto resultante seria par ou ímpar, condicionando a utilizar a cedula seguinte a R$2 , caso o resultado da subtração de 5 gerasse numero impar.
if cedula == 5:
if valor_saque >= 5 and valor_saque % 2 != 0:
quantidade = 1
else:
quantidade = 0
else:
quantidade = valor_saque // cedula
if quantidade > 0:
print(f"{quantidade} de R$ {cedula}")
valor_saque -= (quantidade * cedula)
except ValueError:
print("Erro: Por favor, digite um número inteiro válido.")
Digite o valor do saque: 188
Cédulas entregues para R$ 188:
1 de R$ 100
1 de R$ 50
1 de R$ 20
1 de R$ 10
4 de R$ 2