1
resposta

[Reclamação] O código disponibilizado no exercício está incorreto.

Se digitarmos 556 o caixa pagará 555.
4658 pagará 4657

def caixa_eletronico(): 
    cedulas = [100, 50, 20, 10, 5, 2] 
 
    try: 
        valor = int(input("Digite o valor do saque: ")) 
 
        if valor <= 0: 
            print("Erro: O valor deve ser positivo.")
        elif valor % 2 != 0: 
            print("Erro: O valor deve ser múltiplo de 2.")
        else: 
            print("Cédulas entregues:")
            
            for cedula in cedulas: 
                quantidade = valor // cedula
                if quantidade > 0:
                    print(f"{quantidade} cédulas de R$ {cedula}")
                    valor = valor % cedula 
 
    except ValueError: 
        print("Erro: Digite um valor numérico válido.") 
 
caixa_eletronico()
1 resposta

Bom dia, Andre! Como vai?

Nesse caso, entramos no mesmo problema que temos quando sacamos dinheiro em um caixa eletrônico, ele não vai retornar um valor que não seja possível através das cédulas comuns.

Então, se você tentasse sacar 556 reais em um caixa eletrônico, não seria possível, pois não circula mais a cédula de 1 real, que seria necessária para resolver essa situação.

Mas, pensando em termos técnicos e não aplicacionais, você pode solucionar essa questão adicionando o número 1 dentro da lista de cédulas, como se voltássemos uns anos no tempo com a cédula de 1 real de volta.

def caixa_eletronico(): 
    cedulas = [100, 50, 20, 10, 5, 2, 1] 
 
    # Código omitido....

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.