Seja F(n) o número mínimo de moedas cujos valores somam n e definindo F(0) = 0, primeiro definimos um conjunto de moedas de denominações que varia de 1 até m, ao fazer isso podemos dizer que, j = {1, 2, 3, ..., m}, F(n) = 1 + min(F(n - D[j]))
Ao fazer isso é tirado do valor n uma moeda de denominação obtendo o valor k ao fazer F(k) obtemos o número necessário de moedas de denominação necessárias para chegar em k ao somar mais 1 adicionamos a última moeda necessária para chegar ao valor n, obter o mínimo desses valores apenas significa encontrar k onde o F(k) é menor que os outros