Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

0
respostas

RESOLUÇÃO - Contador de cédulas únicas

Observei que em alguns números o script priorizava a nota maior em alguns casos, resultando em valor faltante de R$1 e R$3, contornei com um if a mais bypassando restos 1 e 3

cedulas_disponiveis = [100, 50, 20, 10, 5, 2]

def exibir_cedulas_disponiveis(cedulas):
    print("Cedulas disponiveis para saque:")
    print(*(f"R$ {cedula}" for cedula in cedulas), sep= ", ")

def sacar_valor(saque, cedulas):
    for cedula in cedulas:
        quantidade = saque // cedula
        if quantidade > 0:
            if saque % cedula == 1 or saque % cedula == 3:
                continue
            saque = saque % cedula
            print(f"{quantidade} cédulas de R$ {cedula}.")

def main():
    exibir_cedulas_disponiveis(cedulas_disponiveis)

    try:
        valor_saque = int(input("Digite o valor a ser sacado: "))

        if valor_saque <= 0:
            print("Erro: O valor deve ser positivo.")
        elif valor_saque % 2 != 0:
            print("Erro: O valor deve ser múltiplo de 2.")
        else:
            print("Cédulas entregues:")
            sacar_valor(valor_saque, cedulas_disponiveis)
    except ValueError:
        print("Erro: Digite apenas um valor numerico válido.")

if __name__ == "__main__":
    main()