Действительно, вы хотите отслеживать, как быстро вы можете добраться до цели.Таким образом, с учетом 20,10,5,1 наименований код выглядит следующим образом: psuedo
int initial = 87; initial twenties tens fives ones
int twenties = initial / 20; 87 4
initial = initial % 20; 7 4
int tens = initial / 10; 7 4 0
initial = initial % 10; 7 4 0
int fives = initial / 5; 7 4 0 1
initial = initial % 5; 2 4 0 1
int ones = initial; 2 4 0 1 2
Как вы можете видеть, существует много повторяющейся логики, так что ее можно подавать из цикла (где мы start с наибольшим значением ).