Skip to content

Instantly share code, notes, and snippets.

@antonio-leonardo
Last active April 20, 2025 00:22
Show Gist options
  • Save antonio-leonardo/7f2d58145788f6adb2f46c4f166b7aa0 to your computer and use it in GitHub Desktop.
Save antonio-leonardo/7f2d58145788f6adb2f46c4f166b7aa0 to your computer and use it in GitHub Desktop.
Algoritmo de Troco (Pagamento > Valor Produto) BRL
import os
os.system('cls' if os.name == 'nt' else 'clear')
moedas_e_cedulas = (0.01,0.05,0.1,0.25,0.5,1,2,5,10,20,50,100,200)
def definir_valor_numerico_valido(mensageDeInput):
resultado = 0
while(resultado == 0):
try:
resultado = round(float(input(mensageDeInput)), 2)
break
except:
print("\nValor inválido!")
continue
return resultado
precoProduto = definir_valor_numerico_valido("\nPor favor, insira o preço do produto:\n")
valorPago = definir_valor_numerico_valido("\nInsira o valor pago:\n")
troco = round((valorPago - precoProduto), 2)
troco_temp = troco
dicionario_troco = {}
indice_atual = len(moedas_e_cedulas)-1
while(troco_temp > 0):
if(troco_temp >= moedas_e_cedulas[indice_atual]):
troco_temp = round((troco_temp - moedas_e_cedulas[indice_atual]), 2)
if moedas_e_cedulas[indice_atual] not in dicionario_troco:
dicionario_troco[moedas_e_cedulas[indice_atual]] = 1
else:
dicionario_troco[moedas_e_cedulas[indice_atual]]+=1
elif(moedas_e_cedulas[indice_atual] > troco_temp and indice_atual > 0):
indice_atual -= 1
else:
continue
print("\nCédulas/Moedas para troco\n")
print(dicionario_troco)
print(f"\nValor total do troco: {troco}")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment