硬币的表示法
来源:互联网 发布:欧洲为什么发达 知乎 编辑:程序博客网 时间:2024/05/22 00:12
题目:给定数量不限的硬币,币值为25分、10分、5分和1分,编写代码计算n分有几种表示法。
思路:这个问题真的非常有意思,需要用到递归的思想。假设现在有50分,求它的表示法。(1)50分可以用0个25分硬币,这下剩下的问题就是50分用10分、5分和1分表示;(2)50分用1个25分表示,问题转化为25分用10分、5分和1分表示;(3)50分用2个25分表示,这时候返回1。
所以可以看到这是一个递归的过程,刚开始时总是用25分硬币表示,递归一层后首选用10分来表示,所以递归函数的参数应该包括币的面额。每次递归之后总是跳转到用比当前小一点的面额表示,从25分跳转到10分,10分跳转到5分,5分跳转到1分,到用1分的时候,递归应该终止了,返回1,因为不管多少分用1分表示总是只有1种方法。
int MakeChange(int n, int denom){int nextDenom = 0;switch(denom){case 25:nextDenom = 10;break;case 10:nextDenom = 5;break;case 5:nextDenom = 1;break;case 1:return 1;}int ways = 0;for(int i = 0; i*denom <= n; ++i)ways += MakeChange(n-i*denom, nextDenom);return ways;}
0 0
- 硬币的表示法
- 硬币表示
- 硬币表示
- 硬币表示
- 硬币表示
- 硬币表示
- 硬币表示
- 美国硬币表示
- 牛客网 | 硬币表示
- 给定数量不限的硬币,币值为25分、10分、5分和1分,编写代码计算n分有多少种表示法。
- 给定数量不限的硬币,币值为25分,10分,5分和1分,编写代码计算n分有几种表示法
- 换零钱:有数量不限的硬币,币值为25分、10分、5分和1分,请编写代码计算n分有几种表示法。
- 有数量不限的硬币,币值为25分、10分、5分和1分,请编写代码计算n分有几种表示法
- 动态规划之硬币表示问题
- 动态规划之硬币表示问题
- 最简单的贪心法:硬币问题
- 币值为25分、10分、5分和1分的硬币,计算n分有几种表示方法
- INT_MIN的表示法
- cf XOR and Favorite Number
- mob 之 ShareSDK第三方分享
- 12.ATL中实现可连接对象和接收器
- multiple definition of 问题解决方法
- 无限级联树形菜单
- 硬币的表示法
- 字符串:暴力子字符串查找算法
- 构造者模式
- 代理模式
- sql server 2005 中数据库表 的创建 ,查看表 属性,表的名称重命名,情况表中信息,删除表 ; 表中列重命名,添加新列,修改列的数据类型,删除列,设置列的主键外键
- 转一篇很牛的文章,说明string、char和char*、char**等的使用
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- Mac下java开发的环境变量配置
- (34)字符串函数 多多练习