[Java] // recursive public class Test_001 {// coin type private static int [] money = {10, 5, 2, 1 }; // number of coins corresponding to private static int [] tote = new int [money. length]; public static void main (String [] args) {int myMoney = 129; findMoney (myMoney, 0); System. out. println ("Total number of coins to be found:" + myMoney); for (int I = 0, length = money. length; I <length; I ++) {if (tote [I]! = 0) {System. out. println ("coin face value:" + money [I] + "\ t quantity:" + tote [I]) ;}} /***** find coins * @ param number of coins to be searched * @ param index compares the subscript index of coins */private static void findMoney (int number, int index) {if (number> 0) {if (number> = money [index]) {tote [index] ++; findMoney (number-money [index], index );} else {findMoney (number, ++ index) ;}}} output result: [java] Total number of coins to be searched: 129 coin nominal value: 10 qty: 12 coin nominal value: 5 quantity: 1 coin nominal value: 2 quantity: 2