问题描述

将5元的人民币兑换成1元、5角和1角的硬币,共有多少种不同的兑换方法。

问题分析

根据该问题的描述,可将该问题抽象为一个不定方程。

设变量x、y和z分别代表兑换的1元、5角和1角的硬币所具有的钱数(角),则由题目的要求,可得到方程:

x+y+z=50

其中,x为兑换的1元硬币钱数,其可能的取值为 {0,10,20,30,40,50},y为兑换的5角硬币钱数,其可能的取值为 {0,5,10,15,20,25,30,35,40,45,50},z为兑换的1角硬币钱数,其可能的取值为 {0,1,...,50}。

算法设计

在问题分析中,我们得到了一个不定方程 x+y+z=50,显然该不定方程会有多组解。根据题意可知x、y和z的可能取值,将它们所有可能取值的组合代入方程中,能使该方程成立的那些解即为该问题的解。

为实现该功能,需要使用3个嵌套的for循环语句。

下面是完整的代码:

#include

int main()

{

int x, y, z, count=1;

printf("可能的兑换方法如下:\n");

for( x=0; x<=50; x+=10 ) /*x为1元硬币钱数,其取值为0,10,20,30,40,50*/

for( y=0; y<=50-x; y+=5 ) /*y为5角硬币钱数,其取值为0,5,10,15,20,25,30,35,40,,45,50*/

for( z=0; z<=50-x-y; z++) /*z为1角硬币钱数,其取值为0,1,...50*/

if(x+y+z==50)

{

/*输出时,每行最多三种情况*/

printf(count%3 ? "%d: 10*%d+5*%d+1*%d\t" : "%d:10*%d+5*%d+1*%d\n", count, x/10, y/5, z);

count++;

}

return 0;

}

运行结果:

可能的兑换方法如下:

1: 10*0+5*0+1*50 2: 10*0+5*1+1*45 3:10*0+5*2+1*40

4: 10*0+5*3+1*35 5: 10*0+5*4+1*30 6:10*0+5*5+1*25

7: 10*0+5*6+1*20 8: 10*0+5*7+1*15 9:10*0+5*8+1*10

10: 10*0+5*9+1*5 11: 10*0+5*10+1*0 12:10*1+5*0+1*40

13: 10*1+5*1+1*35 14: 10*1+5*2+1*30 15:10*1+5*3+1*25

16: 10*1+5*4+1*20 17: 10*1+5*5+1*15 18:10*1+5*6+1*10

19: 10*1+5*7+1*5 20: 10*1+5*8+1*0 21:10*2+5*0+1*30

22: 10*2+5*1+1*25 23: 10*2+5*2+1*20 24:10*2+5*3+1*15

25: 10*2+5*4+1*10 26: 10*2+5*5+1*5 27:10*2+5*6+1*0

28: 10*3+5*0+1*20 29: 10*3+5*1+1*15 30:10*3+5*2+1*10

31: 10*3+5*3+1*5 32: 10*3+5*4+1*0 33:10*4+5*0+1*10

34: 10*4+5*1+1*5 35: 10*4+5*2+1*0 36:10*5+5*0+1*0

换硬币的c语言程序流程图,C语言换分币问题相关推荐

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

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

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

    输入格式: 输入在一行中给出待换的零钱数额x∈(8,100). 输出格式: 要求按5分.2分和1分硬币的数量依次从大到小的顺序,输出各种换法.每行输出一种换法,格式为:"fen5:5分硬币数 ...

  3. 猜数游戏c语言程序流程图,C语言程序设计之猜数游戏.ppt

    C语言程序设计之猜数游戏 编程人员演示 C语言程序设计之猜数游戏 --软工一班 第二小组 程序功能简介 程序思路导引 程序流程图 程序N-S图 组员名单及其具体分工 end page 程序功能简介(1 ...

  4. 猜数游戏c语言程序流程图,C语言猜数游戏代码

    写在前面:本代码使用了随机数+循环体+时间戳等初等代码,仅供小白交流,参考!#include #include #include #include int menu()                 ...

  5. C语言_习题4-5 换硬币

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

  6. 醉林疯的PTA 7-2 换硬币 (20分)

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

  7. 习题4-5 换硬币 (20分)

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

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

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

  9. 浙江大学 PTA 程序 第四部分 给定精度的简单交错序列部分和 数字游戏 e的近似值 最小值 统计素数并求和 奇数和 幂级数展开的部分和 分数序列前N项和 特殊a串数列求和 换硬币 水仙花数 最大公约

    练习4-3 求给定精度的简单交错序列部分和 (15 分) 本题要求编写程序,计算序列部分和 1 - 1/4 + 1/7 - 1/10 + ... 直到最后一项的绝对值不大于给定精度eps. 输入格式: ...

最新文章

  1. Java 构造方法与成员方法的区别
  2. 分布式事务,阿里为什么钟爱TCC
  3. 后台服务显示右下角弹窗 -- system权限创建用户权限进程
  4. 文献记录(part11)--Biclustering of Expression Data
  5. jvm崩溃的原因_JVM崩溃时:如何调查最严重错误的根本原因
  6. 汉字转拼音Pinyin4j工具(C#、Java都可用)
  7. 【JZOJ4910】【NOIP2017模拟12.3】子串
  8. 前端笔记之Vue(五)TodoList实战拆分store跨域练习代理跨域
  9. [dpdk] 熟悉SDK与初步使用 (二)(skeleton源码分析)
  10. 3.1 数值分析: 迭代法的基本思想
  11. 如何破解HIT的孤岛效应,一起关于患者主索引的案例分享
  12. 蓝宝石rx580怎么超频_【蓝宝石 RX580 8G D5 超白金 OC 显卡使用总结】游戏|界面|按钮|频率_摘要频道_什么值得买...
  13. 随机森林系列(一)——随机森林分类算法原理推导
  14. Mbed OS STM32F429 中断方式接收 ADS1256
  15. 实习总结与收获(2021.6.7-2021.8.27)
  16. html怎么写海贼王旗帜图片,海贼王精美旗帜套图
  17. 使用opencv读取rtsp流的图片帧进行目标检测,并将处理好的图像推到rtsp服务器上
  18. 众数和中位数的应用题_什么是众数和中位数
  19. LCD LED TN IPS等常见的显示器技术名称
  20. #Visio#教会你怎么安装和使用 Visio 哦 ~ ~

热门文章

  1. 记录踩过的坑-WPS文字中的表格操作
  2. wps文字上怎么做流程图_wps文字如何绘制流程图图文教程
  3. EasyExcel 自定义LocalDate类型转换器Converter
  4. C++ 树进阶系列之笛卡尔树的两面性
  5. 网盘进化史就这样(上)——原理简析
  6. c语言中vector的用法,c中vector的用法
  7. EasyUI Layout实现tabs标签
  8. WCTF世界黑客大师赛,你看懂了多少?
  9. 分享几十篇硬件工程师笔记
  10. 精讲响应式WebClient第4篇-文件上传与下载