Ï«Ï ----jGRASP exec: java ChangeMakerDriver
ÏϧÏ
ÏÏ§Ï in change for 1 time: amount = 4
ÏϧϠ                    i = 0
ÏϧϠ                    i = 1
ÏϧϠ                    i = 2
ÏϧϠ                          j = 1
ÏÏ§Ï in change for 2 time: amount = 1
ÏϧϠ                    i = 0
ÏÏ§Ï in change for 3 time: amount = 3
ÏϧϠ                    i = 0
ÏϧϠ                    i = 1
ÏϧϠ                    i = 2
ÏϧϠ                          j = 1
ÏÏ§Ï in change for 4 time: amount = 1
ÏϧϠ                    i = 0
ÏÏ§Ï in change for 5 time: amount = 2
ÏϧϠ                    i = 0
ÏϧϠ                    i = 1
ÏϧϠ                    i = 2
ÏϧϠ                          j = 1
ÏÏ§Ï in change for 6 time: amount = 1
ÏϧϠ                    i = 0
ÏÏ§Ï in change for 7 time: amount = 1
ÏϧϠ                    i = 0
ÏϧϠ                          j = 2
ÏÏ§Ï in change for 8 time: amount = 2
ÏϧϠ                    i = 0
ÏϧϠ                    i = 1
ÏϧϠ                    i = 2
ÏϧϠ                          j = 1
ÏÏ§Ï in change for 9 time: amount = 1
ÏϧϠ                    i = 0
ÏÏ§Ï in change for 10 time: amount = 1
ÏϧϠ                    i = 0
ÏÏ§Ï in change for 11 time: amount = 2
ÏϧϠ                    i = 0
ÏϧϠ                    i = 1
ÏϧϠ                    i = 2
ÏϧϠ                          j = 1
ÏÏ§Ï in change for 12 time: amount = 1
ÏϧϠ                    i = 0
ÏÏ§Ï in change for 13 time: amount = 1
ÏϧϠ                    i = 0
ÏÏ§Ï number coins needed is 4
ÏϧÏnumber of times change called is 13
ÏϧÏ
ÏÏ©Ï ----jGRASP: operation complete.
¼¼

 

 

coins =  {1,5,8}

amount =  4

 

change ({1,5,8}, 4)  // initial call

amount         4

min                4

coins.length  3

i = 0  1  2

amount/2      2

j = 1       ... 2                                           

                1

 number = change ({1,5,8}, 1)  + change ({1,5,8}, 3)  // subsequent calls

 change ({1,5,8}, 1)  // second call

 amount          1

 min                1

 coins.length  3

  i = 0

 coins[0] = 1  so return 1

                                                change ({ 1,5,8}, 3) // third call

amount       3

min              4                                      

coins.length 3

 i = 0  1  2

 amount /2       1

  j = 1 

                                     1

 number = change ({1,5,8}, 1)  +  change ({1,5,8}, 2) //subsequent calls

                                                 change ({1,5,8}, 1)  // fourth call

                                                 amount         1

 min               1

                                 coins.length  3

                                 i = 0

                                                 coins[0] = 1  so return 1

                            change({1,5,8}, 2)  // fifth call

                            amount                    2

                             min                          2

                              coins.length     3

                                                                                  i = 0  1  2

                                                                                  amount/2              1              

                                                                                   j = 1

                                                                                                                  1                                            1

  number = change ({1,5,8}, 1) + change ({1,5,8}, 1) // subsequent calls

                                                                                                  change ({1,5,8}, 1)  // sixth call

                                                                                                  amount         1

                                                  min               1

                                                                                  coins.length  3

                                  i = 0

                                                                                                 coins[0] = 1  so return 1

 

   chage ({1,5,8}, 1)  // seventh call

                                                                                                                                   amount        1

                                                                                   min               1

                                                                                                                   coins.length  3

                                                                                                                   i = 0

                                                                                                                                   coins[0] = 1  so return 1

note: We are not done yet.