换不开的硬币问题

小明有1.15美元硬币,他却无法把1美元、50美分,25美分,10美分,5美分换成硬币,小明有哪些硬币?分别有多少枚?

答案:50美分1枚,25美分1枚,10美分4枚。

分析:如果小明换不了1美元,那么他拥有的50美分硬币不会超过1枚;如果他换不了50美分,那么他拥有的25美分硬币不会超过1枚,10美分硬币不会超过4枚;10美分换不了,意味着他的5美分硬币不会超过1枚;5美分换不了,他的1美分硬币不超过4枚。因此,小明拥有的各种硬币数目的上限是:

50美分1枚    $0.50

25美分1枚     $0.25

10美分4枚     $0.40

5美分1枚      $0.05

1美分4枚      $0.04

总和        $1.24

这些硬币还能换1美元(例如,50美分和25美分各1枚,10美分2枚,5美分1枚),但是我们知道了小明拥有各种硬币的数目不会比上面多,上面这些硬币加起来共有1.24美元,比小明拥有的硬币总值1.15美元多出9美分.

然而,组成9美分的唯一方式是1枚5美分加上4枚1美分,所以必须把这5枚硬币从上面列出的硬币中除去,剩下的是1枚50美分、1枚25美分和4枚10美分的硬币.它们既换不了1美元,也无法兑换1美元、50美分、25美分、10美分、5美分的硬币,它们的总值刚好1.15美元,于是便得出正确答案。

时间: 2024-08-03 14:56:28

换不开的硬币问题的相关文章

SICP-换零钱方法的统计

[问题] 现有半美元.四分之一美元.10美分.5美分和1美分共5种硬币.若将1美元换成零钱,共有多少种不同方式? [思路] 采用递归过程,假定我们所考虑的可用硬币类型种类排了某种顺序,于是就有下面的关系: 将总数为a的现金换成n中硬币的不同方式的数目等于 将现金数a换成除第一种硬币之外的所有其他硬币的不同方式数目,加上 将现金数a-d换成所有种类的硬币的不同方式数目,其中的d是第一种硬币的币值. 注意这里将换零钱分成两组时所采用的方式,第一组里面都没有使用第一种硬币,而第二组里面都使用了第一种硬

设计模式—桥接模式

桥接模式:具有依赖关系的对象可以灵活的进行随意组合. 实例说明:人开车在路上跑. 能够自由组合人.车和路来实现各种情景 就像不知道1+1为什么等于2 一样,我也不知道为什么要使用桥接模式.可以解耦吧?不需要在person中new Car不需要在Car中new Road. 只需要在调用处注入三个对象便可实现随意组合. 定义抽象类:Road package com.zpj.designMode.bridgePattern; /** * @author PerKins Zhu * @date:2016

算法学习笔记(八) 动态规划的一般求解方法

1 一个问题:换零钱方式的统计 SICP 第一章 1.2.2 树形递归中,有这么一问题:给了半美元,四分之中的一个美元.10美分,5美分和1美分的硬币.将1美元换成零钱,一共同拥有多少种不同方式?更一般的问题是,给定了随意数量的现金,我们能写一个程序,计算出全部换零钱方式的种数吗? 2 动态规划的基本模型 动态规划(Dynamic programming,DP),是研究一类最优化问题的方法,通过把原问题分解为相对简单的子问题的方式求解复杂问题.动态规划处理的也就是是多阶段决策最优化问题,这一类问

多种相似距离对比

多种相似距离对比 因某些原因需要对样本进行相似度方面的计算,对常见的几种距离公式进行了一系列实验. 距离公式:距离的衡量在相似度衡量中占据了重要的地位,不同的距离公式有其不同的应用场景,都是为了解决某类问题而诞生的,本文期望对这些距离公式能有个”0距离”的亲密接触. 目录 1. 欧氏距离2. 切比雪夫距离3. 曼哈度距离4. 闵可夫斯基距离5. 兰氏距离6. COS余弦距离 1. 欧氏距离        欧式来源于顶顶大名的欧几里得,那么自然会想到空间几何,以其名义命名的距离公式是初中就接触到的

HDU 4822 Tri-war(LCA树上倍增)(2013 Asia Regional Changchun)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4822 Problem Description Three countries, Red, Yellow, and Blue are in war. The map of battlefield is a tree, which means that there are N nodes and (N – 1) edges that connect all the nodes. Each country

爆料!国内用户喜欢最热门APP并不是微信

国内每天活跃度最高的APP是什么?很多人立刻会说微信.陌陌.或者优酷视频,但最近圈子里悄悄在流传一个故事,优酷路由宝的APP的日活跃率已经超过70%,是微信的两倍以上,据说米UI和华为的后台工程师看到这个数据都惊呆了.那路由宝APP是什么,他们又怎么让用户爱不释手呢? 优酷路由宝是优酷土豆集团今年3月推出了一款智能路由器,一上市,就被惊为赚钱神器,用户只要买一台89元的路由宝,接上网线,每天就能够赚钱.如果带宽好的用户,每月能拿到百元,几乎抵消了宽带费用.带宽不好的,也可以参加保障计划,年入90

SICP 找零钱问题背后的思考

问题见SICP P26 此问题的递归方法很简单,类似于背包的思想. 即金额为amount的现金换成n种硬币的种类数 满足循环不变式: count_change(amount,n)=count_change(amount,n-1)+count_change(amount-amount_of_first_coin,n) 递归中止条件是:当a=0,结果为1 a<0,结果为0 当n=0 结果也为0 将上述规则转换为scheme代码,在Drracket中运行 1 #lang racket 2 (defin

P1392 取数[堆]

题目描述 在一个n行m列的数阵中,你须在每一行取一个数(共n个数),并将它们相加得到一个和.对于给定的数阵,请你输出和前k小的取数方法. 解析 写这题完全自闭. 根本没联想起远古时期做的 P1631 序列合并 ,这题几乎是我刚入门做的了,代码还是仿的. 真的想了很久,怀疑自己智商.jpg. 首先如果做了 P1631 序列合并 而且还记得,那么这道题其实很好做.实际上就是把求两行的前\(k\)小和改成了求\(n\)行的前\(k\)小和. 两行的情况:设单调递增数列\(a,b\),其存在最小值\(a

哄俘膊搬照督惊昌铺矩括

http://weibo.com/P/1001604191285404652372棺乔照殉创IGT悠伪汉创 http://weibo.com/P/1001604191285421429732酒斗贺睹坠TJU烈儋屯乙 http://weibo.com/P/1001604191285522094620谋仝乙谮颈CZX佑幸绞佑 http://weibo.com/P/1001604191285538899201崖挖父眯忱LVF滔毕照掏 http://weibo.com/P/100160419128557