兑换硬币——递归法

兑换硬币——递归法


有无限个25美分,10美分,5美分和1美分的硬币,如何组合成n美分,有多少中兑换方法?
解:
从硬币值大到小进行兑换。
public static int makeChange(int n,int denom){
int next_denom=0;
switch(denom){
case 25:
next_denom=10;
break;
case 10:
next_denom=5;
break;
case 5:
next_denom=1;
break;
case 1:
return 1;
}
int ways=0;
for(int i=0;i*denom<=n;i++){
ways+=makeChange(n-i*denom,next_denom);
}
return ways;
}

你可能感兴趣的:(基础算法)