有以下问题

有 20 枚硬币,可能包括 4 种类型:1 元、5 角、1 角和 5 分。已知 20 枚硬币的总价值为 10 元,求各种硬币的数量。

首先我们先来分析一下,每种硬币的情况,1 元最多 10 枚、5 角最多 20 枚、1 角最多20 枚、5 分最多 20 枚。

通过以上的分析,我们可以通过穷举法来实现这个问题,可能有人问,穷举法是什么呢?

穷举法就是列举出所有可能的情况,逐个判断有哪些是符合问题所要求的条件,从而得到问题的全部解答。
这里如果以元为单位,则 5 角、1 角、5 分会化成浮点型数据,容易计算出错。可以将 1元、5 角、1 角、5 分变成 100 分、50 分、10 分和 5 分,从而全部采用整型数据处理

C/C++代码

#include <iostream>
#include <Windows.h>
#include <string>using namespace std;/*
有 20 枚硬币,可能包括 4 种类型:1 元、5 角、1 角和 5 分。已知 20 枚硬币的总价值为 10 元,求各种硬币的数量。
1 元最多 10 枚、5 角最多 20 枚、1 角最多20 枚、5 分最多 20 枚。
*/int main(void) {string line(50, '-');int a100 = 0; //1元的硬币数量int a50 = 0;  //5角的硬币数量int a10 = 0;  //1角的硬币数量int a5 = 0;       //5分的硬币数量int ret = 0;  //记录共有几种方案cout << line << endl;for (a100 = 0; a100 <= 10; a100++) {for (a50 = 0; a50 <= 20; a50++) {for (a10 = 0; a10 <= 20; a10++) {for (a5 = 0; a5 <= 20; a5++) {if (a100 * 100 + a50 * 50 + a10 * 10 + a5 * 5 == 1000 && (a100 + a50 + a10 + a5) == 20) {cout << "1元的数量:" << a100 << "  5角的数量:" << a50 << "  1角的数量:" << a10 << "  5分的数量:" << a5  << endl;ret++;cout << line << endl;}}}}}cout << "共有" << ret << "种方案" << endl;cout << line << endl;system("pause");return 0;
}

运行以上代码,便可以得到结果


用穷举法解决问题。

(1) 问题所涉及的情况:问题所涉及的情况有哪些,情况的种数必须可以确定。把它描述出来。应用穷举时对问题所涉及的有限种情形必须一一列举,既不能重复,也不能遗漏。重复列举直接引发增解,影响解的准确性;而列举的遗漏可能导致问题解的遗漏。
(2) 答案需要满足的条件:分析出来的这些情况,需要满足什么条件,才成为问题的答案。把这些条件描述出来。

喜欢的可以点点赞哦QAQ~~

有 20 枚硬币,可能包括 4 种类型:1 元、5 角、1 角和 5 分。已知 20 枚硬币的总价值为 10 元,求各种硬币的数量。相关推荐

  1. java练习题 有50枚硬币,可能包括4种类型:1元,5角,1角,5分。已知总价值为20元。求各种硬币的数量。

    问题 有50枚硬币,可能包括4种类型:1元,5角,1角,5分.已知总价值为20元.求各种硬币的数量. 解决思路 对付这一类的问题,最简单的方式莫过于暴力穷举,就是用四个循环,一个一个试,结果满足要求输 ...

  2. 【博客545】从交换机视角看四种报文:广播、组播、未知单播、已知单播

    从交换机视角看四种报文:广播.组播.未知单播.已知单播 交换机视角的四种报文 对于二层交换机来说,它在转发报文时,只有四种类型的报文: 1.广播 2.组播 3.未知单播 4.已知单播. 四种报文剖析 ...

  3. 用“已知”的办法解决“未知”的办法---.NET连动控件和统计数量

    好几天没更新博客了,这几天都忙着修改代码.我老大(豪客)给我的任务还是比较重的,o(∩_∩)o...哈哈,今天就跟大家聊一下这几天的收获.希望能跟大家一起分享. 首先以前页面的截图如下: 更新后的截图 ...

  4. python文件包括两种类型_python第六篇文件处理类型

    阅读目录 文件处理 上节课复习 文件处理b模式 文件处理其他模式 seek 的补充 迭代器和生成器 生成器函数 生产者和消费者类型 19天作业讲解 一 文件操作 一 介绍 计算机系统分为:计算机硬件, ...

  5. 传播的两种类型(包括NPS指标的定义)

    传播的类型 传播作为获客的重要环节,包括两种类型.一种是非常直接的产品推荐,例如使用效果满意,让客户自主去认可.推荐产品:另一种是使用时潜移默化的产品推荐,例如分析文章到朋友圈,或者分享获取对应的奖赏 ...

  6. 虚拟主机可以运行java_下面哪种类型的文件可以在Java虚拟机中运行( ).

    下面哪种类型的文件可以在Java虚拟机中运行( ). 答:.class 舌尖前送气清塞擦音是 答:c 中国大学MOOC: 已知 [X]原=10101100,[Y]补=11000110, 求 [X+Y] ...

  7. Segue几种类型(Show、Show Detail、Present modally、Present as Popover)的区别

    本文不够全面,建议查看View Controller 转场这篇文章. 在iOS中,segue的class为UIStoryboardSegue,用于storyboard中不同视图控制器间转场,即从一个视 ...

  8. 习题4-5 换硬币 (20分) 将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?

    习题4-5 换硬币 (20分) 将一笔零钱换成5分.2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法? 输入格式: 输入在一行中给出待换的零钱数额x∈(8,100). 输出格式: 要求按5分 ...

  9. /* * 编程题第四题(20分): 用1元5角钱人名币兑换5分、2分和1分的硬币(每一种都要有)共一百枚,问共有几种兑换方案?并输出每种方案。 */

    题目: /* 编程题第四题(20分): 用1元5角钱人名币兑换5分.2分和1分的硬币(每一种都要有)共一百枚,问共有几种兑换方案?并输出每种方案. */ 我使用java做的 public class ...

最新文章

  1. DataSet 动态添加列
  2. Kafka与RabbitMQ
  3. 「客户成功故事」OneAPM 助力网上办事大厅构建阳光、高效、安全的政务服务平台...
  4. 项目管理控件Project Management Library
  5. hihocoder 1866 XOR
  6. 【Python】爬取xici和快代理的免费代理ip
  7. fc安卓模拟器_安卓电视卡丑慢!装上它们,像iOS一样省心易用
  8. 如何让小孩练得一手好字?这5个小方法,家长不妨试试
  9. qt程序在win10正常运行win7电脑上崩溃
  10. 用案例说话,教你如何写出有吸引力的开发信以及主题
  11. 自动生成带昵称的头像(仿照钉钉头像)
  12. windows+ffmpeg+qsv实现inter核显加速视频解码编码
  13. (转)Android单元测试
  14. exe4j破解版的下载及使用
  15. Python StringIO与cStringIO
  16. 使用python输出真值表
  17. 我的不靠谱择业[饮水思源feeling]
  18. html手抄报怎么制作,手抄报怎么做
  19. pycharm如何回到过去某个时间
  20. Docker——compose简述部署

热门文章

  1. npm构建报错 code ELIFECYCLE解决办法
  2. week_4_homework
  3. linux正则表达式与cut命令
  4. python删除列索引_从datafram中删除列索引
  5. 四核i.MX6Q和双核i.MX6DL双屏异显
  6. win10 命令行工具cmd乱码解决方案及cmd非常用命令chcp介绍
  7. 百度APP iOS端内存优化实践-大块内存监控方案
  8. [IKNP03] Extending Oblivious Transfers Efficiently
  9. RocketMq学习- 安装
  10. 简单神经网络入门-损失率为nan