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

输入在一行中给出待换的零钱数额x∈(8,100)
要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。最后一行输出“count = 换法个数”。
输入样例:
13
输出样例:
fen5:2, fen2:1, fen1:1, total:4
fen5:1, fen2:3, fen1:2, total:6
fen5:1, fen2:2, fen1:4, total:7
fen5:1, fen2:1, fen1:6, total:8
count = 4

以上均是来自PTA ,非本人所出。由于是小白,多次写,留作纪念。

#include<stdio.h>
#include<math.h>
//利用Solve函数解决
void Solve(int n)
{int  x, y, z, count=0, m=5;  //x ,y, z 分别表示 5 2 1x = n / 5;  //取整if (n-5*x<3)    //判断x 是否满足 至少有一枚x--;    y = (n-5*x)/2;if (n-5*x-2*y<1) //判断yy--;z = n-5*x-2*y;//进入打印输出while(1){    for (y; y>=1; y--)  //此处注意用while时,如何跳出死循环{printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n",x, y, z, x+y+z);z += 2;count++;}if(x==1 && y ==0)       //y == 0时,由于for调用,当y=1,打印最后一项break;             //  打印完成后 跳出循环x--;/*重新赋值 y,z*/y = (n-5*x)/2;if (n-5*x-2*y<1)y--;z = n-5*x-2*y;}printf("count = %d\n", count);
}
// n为输入
int main(void)
{int n;scanf("%d", &n);Solve(n);return 0;
}

借鉴的请不要直接引用,应该思考逻辑结构。

当任务具体化之后可以进行封装,功能模块化

将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?相关推荐

  1. 将一张100元的钞票换成1元、5元和10元的钞票,每种钞票至少一张,编写程序输出所有的换法,循环次数需要尽可能地少。

    2.将一张100元的钞票换成1元.5元和10元的钞票,每种钞票至少一张,编写程序输出所有的换法,循环次数需要尽可能地少. public class Two_2money { public static ...

  2. 要将五张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,每种面值至少1张,编程输出所有可能的换法,程序应适当考虑减少重复次数

    源程序: 要将五张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,要求换成30张小钞票,每种面值的至少一张,编程输出所有可能的换法,程序应适当考虑减少重复次数. #include ...

  3. 把 LaraDock 换成国内镜像

    对于刚学习docker同学,LaraDock能够帮你在Docker上快速搭建Laravel应用. 但是由于是国外镜像,结果nginx的包一直下载失败(内心呀一万个草泥马在狂奔). 于是在github ...

  4. c语言file和fp未声明标识符,c语言定义文件指针时(FILE *fp)一定要写*fp吗、可以换成别的字母不...

    c语言定义文件指针时(FILE *fp)一定要写*fp吗.可以换成别的字母不 关注:146  答案:4  mip版 解决时间 2021-01-29 07:27 提问者祗剩寂寞 2021-01-28 1 ...

  5. JAVA32位的如何换成64位的_教你怎么把win732位换成64位

    近来,小编在网上看到一些网友在寻求windows732位怎么换成64位的方法,所以急人之所需,小编就如何windows732位怎么换成64位,做出以下解答. 一些朋友在网站上想要知道怎么把win732 ...

  6. C语言一百块钱换成十元20元,把100元人民币换成50元、20元、10元的纸币。计算出有多少种换法?...

    把100元人民币换成50元.20元.10元的纸币.计算出有多少种换法?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 把 ...

  7. 台式电脑win8系统怎么换成win7?

    台式电脑win8系统怎么换成win7?想必多数小伙伴看到自己电脑的系统是win8也想换成win7系统吧,但是不知道如何使用u盘装系统,今天小编带大家了解台式电脑win8系统换成win7的操作过程,一起 ...

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

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

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

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

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

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

最新文章

  1. 西湖大学鞠峰组:环境宏病毒组学分析思路与常用工具
  2. 时间序列:五种编辑距离和Python实现
  3. Html5实践之EventSource
  4. mysql类exadata功能_Exadata V2数据库一体机的几大致命缺点
  5. oracle之数据处理之约束1
  6. 23种设计模式 -比喻
  7. bat函数调用 带返回值
  8. 做系统的U盘如何格式化
  9. [设计模式]装饰者模式
  10. ie6中margin失效问题
  11. win7系统网络计算机,Win7系统打开局域网没看到其他计算机的修复方法
  12. 2022医疗AI行业研究白皮书 附下载
  13. 收集整理近700套微信朋友圈h5小游戏源码合集大放送
  14. VC6.0内存泄露检测工具
  15. 4.1.5 消费者获取记录
  16. Unity3D 点击物品交互动画制作——开箱子和关箱子
  17. 项目经理必备的软技能,你有吗?
  18. CET-4 week8# 细枝末节
  19. UVA 10242 || Fourth Point !!(求平行四边形第四点
  20. 使用微安级功耗分析仪,给微软无线键盘进行了功耗评测,分享评测数据,供软硬件工程师和产品工程师参考!

热门文章

  1. 开源众包优质开发商计划。坐享100万很easy!
  2. kali忘记登陆密码解决方法
  3. Linux-2.4.0 下半部机制分析
  4. 小白在阿里云云服务器上如何发布自己的网站(建站|详细)...
  5. 计算机共享协议书,联合体资质共享协议书.doc
  6. KONG网关 — 介绍安装
  7. 工商股权变更需要哪些资料
  8. RPG Maker XP游戏制作方法(四)
  9. 柠檬桉叶油和deet_【科普】99%的曹王人都不知道!驱蚊花露水是农药!科普一下儿童使用驱蚊剂的安全性...
  10. 设计c语言程序能否订火车票,C语言-购买火车票原理