int fun(int coin[], int number,int count) {//coin数组里面的元素是硬币面值,并且从大到小排列;number表示该数组长度,也就是不同面值的数量
for (int i = 0;i < number;i++) {
for (int j = 0;1;j++) {
if (coin[i] * j == count) {
return j;
}
else if(coin[i] * j > count) {
if (i == number - 1) {
return -1;
}
else {
int item = fun(coin + 1, number - 1, count - coin[i] * (j - 1));
if (item == -1) {
break;
}
else {
return j - 1 + item;
}
}
}
}
}
}
07-09
739
07-07
825
04-08
837
03-14
1086