递归问题
int makeChange(int n, int denom)
{
int next_denom;
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;
}
int makeChange(int n)
{
return makeChange(n, 25);
}
本文介绍了一种使用递归算法解决硬币找零问题的方法。通过定义递归函数makeChange来计算不同面额硬币组合成特定金额的方案数。递归函数考虑了从最大面额到最小面额的变化,并通过循环累加所有可能的组合。
3269

被折叠的 条评论
为什么被折叠?



