您的位置:首页 > 编程语言

给定数量不限的硬币,币值为25分、10分、5分和1分,编写代码计算n分有多少种表示法。

2014-02-09 15:04 302 查看
递归问题

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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  面试 c++ 递归
相关文章推荐