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()