Como encontrar todas as combinações de moedas quando determinado valor em dólar
Eu encontrei um pedaço de código que eu estava escrevendo para a entrevista de alguns meses atrás.
De acordo com o comentário que eu tinha, estava tentando resolver esse problema:
Dado algum valor em dólar em centavos (por exemplo, 200 = 2 dólares, 1000 = 10 dólares), encontre todas as combinações de moedas que compõem o valor em dólar. Existem apenas moedas de um centavo (1 ¢), níquel (5 ¢), moedas (10 ¢) e quartos (25 ¢) permitidos.
Por exemplo, se 100 foi dado, a resposta deve ser:
4 quarter(s) 0 dime(s) 0 nickel(s) 0 pennies
3 quarter(s) 1 dime(s) 0 nickel(s) 15 pennies
etc.
Acredito que isso pode ser resolvido de maneira iterativa e recursiva. Minha solução recursiva é bastante bugs, e eu queria saber como outras pessoas resolveriam esse problema. A parte difícil desse problema foi torná-lo o mais eficiente possível.