Skip to content

Instantly share code, notes, and snippets.

@marcoscastro
Last active February 21, 2022 00:30
Show Gist options
  • Select an option

  • Save marcoscastro/0db6e0d0999d032de0ae65e0fa4566b4 to your computer and use it in GitHub Desktop.

Select an option

Save marcoscastro/0db6e0d0999d032de0ae65e0fa4566b4 to your computer and use it in GitHub Desktop.
Curso Python 300 - Aula 29 - Algoritmos Gulosos - Problema do Troco
'''
Algoritmos gulosos
- Sempre escolhe a alternativa que parece mais promissora naquele instante
- NUNCA reconsidera essa decisão
- Uma escolha que foi feita NUNCA é revista
- Não há backtracking
- A escolha é feita de acordo com um criterio guloso - decisão localmente ótima.
- Nem sempre dão soluções ótimas
Problema do Troco (Troco mínimo)
Moedas = {100, 50, 25, 5, 1}
Troco: 75
Quantidade mínima de moedas: 2 (1 de 50 + 1 de 25)
'''
moedas = [100, 50, 25, 5, 1]
total = 0
troco = 130
for i in range(len(moedas)):
num_moedas = troco // moedas[i]
troco -= num_moedas * moedas[i]
total += num_moedas
print(total)
@Controll-Controll
Copy link

Boa noite. Entendi sua explicação. Mas eu gostaria de implementar o usuário informando o valor e no final o programa diga o valor do troco e quantas e tipos de moedas serão entregues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment