7-2 换硬币 (20分)
将一笔零钱换成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
解题思路:
这题要判断一下不同数值的硬币换取的上限
题目中已经明确说明了每种硬币至少都有一个
所以在计算某一种硬币时的数量上限时,就可以用总数将其他两枚硬币的数值下限的和减掉
即当待换零钱数额为
13
时
1分
和2分
的硬币至少有一个
那么剩下的数值就是13-1-2
即10
5分
硬币的数量最多是10/5
, 得到一个整数2
2分和1分硬币的数值上限计算也是这样
相较于直接用总数值去除以硬币数值得到硬币的数量上限的计算方法来说
这种方法能减少一些判断次数
聊胜于无
代码:
#include<bits/stdc++.h>
using namespace std;
int main(){int x;cin >> x;int max_5 = (x - 2 - 1) / 5;int max_2 = (x - 5 - 1) / 2;int max_1 = (x - 5 - 2) / 1;int count;int num = 0;for(int i = max_5; i >= 1; i--){for(int j = max_2; j >= 1; j--){for(int k = max_1; k >= 1; k--){if(5 * i + 2 * j + k == x){count = i + j + k;printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n",i,j,k,count);num ++;}}}}printf("count = %d",num);return 0;
}
7-2 换硬币 (20分)相关推荐
- 醉林疯的PTA 7-2 换硬币 (20分)
7-2 换硬币 (20分) 将一笔零钱换成5分.2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法? 输入格式: 输入在一行中给出待换的零钱数额x∈(8,100). 输出格式: 要求按5分.2 ...
- 习题4-5 换硬币 (20分)
习题4-5 换硬币 (20分) 将一笔零钱换成5分.2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法? 输入格式: 输入在一行中给出待换的零钱数额x∈(8,100). 输出格式: 要求按5分 ...
- 习题4-5 换硬币 (20分) 将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
习题4-5 换硬币 (20分) 将一笔零钱换成5分.2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法? 输入格式: 输入在一行中给出待换的零钱数额x∈(8,100). 输出格式: 要求按5分 ...
- pta 天梯赛 7-3 换硬币 (20 分)day4
将一笔零钱换成5分.2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法? 输入格式: 输入在一行中给出待换的零钱数额x∈(8,100). 输出格式: 要求按5分.2分和1分硬币的数量依次从大到 ...
- C语言:习题4-5 换硬币 (20分)
将一笔零钱换成5分.2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法? 输入格式: 输入在一行中给出待换的零钱数额x∈(8,100). 输出格式: 要求按5分.2分和1分硬币的数量依次从大到 ...
- 换硬币 (20 分)Java【循环】
将一笔零钱换成5分.2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法? 输入格式: 输入在一行中给出待换的零钱数额x∈(8,100). 输出格式: 要求按5分.2分和1分硬币的数量依次从大到 ...
- 习题4-5 换硬币 (20 分)
将一笔零钱换成5分.2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法? 输入格式: 输入在一行中给出待换的零钱数额x∈(8,100). 输出格式: 要求按5分.2分和1分硬币的数量依次从大到 ...
- 习题4-5 换硬币 (20分) 将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
输入格式: 输入在一行中给出待换的零钱数额x∈(8,100). 输出格式: 要求按5分.2分和1分硬币的数量依次从大到小的顺序,输出各种换法.每行输出一种换法,格式为:"fen5:5分硬币数 ...
- PTA---换硬币 (20 分)
将一笔零钱换成5分.2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法? 输入格式: 输入在一行中给出待换的零钱数额x∈(8,100). 输出格式: 要求按5分.2分和1分硬币的数量依次从大到 ...
- 习题4-5 换硬币 将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
习题4-5 换硬币 (20分) 将一笔零钱换成5分.2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法? 输入格式: 输入在一行中给出待换的零钱数额x∈(8,100). 输出格式: 要求按5分 ...
最新文章
- Grub 修复(文件损坏)有备份
- 0x0800 IP数据包格式分析
- DCMTK:DcmAttributeFilter类的测试程序
- Docker初学者指南-如何创建您的第一个Docker应用程序
- 快手2021年营收810亿元 经调整净亏损188亿元
- 计算机ip配置不正确怎么办,电脑ip地址不对该怎么办
- testlink匹配mysql8_TestLink与RedMine连接部署说明
- 写入接口c语言_嵌入式LCD的接口类型详解
- html5的file api,HTML5 File API
- 开源服务器日志审计系统,开源日志管理系统
- ps和matlab哪个,Matlab与photoshop在数字图像处理中的比较
- 牛客小白月赛5-E-面积(area)(波尔约-格维也定理+皮克公式)
- 机关算尽,......
- 动漫网站-前端网页技术精美网站源码HTML+CSS+JS
- 标准光源与色温、波长的关系
- 国庆的人山人海,生无可恋脸
- 网狐荣耀6701,6801(系列十)手机端热更新
- Final Cut Pro 在视频的多个地方同时打马赛克
- yii2 advanced 开启gii localhost/index.php?r=gii无法打开gii
- Kettle实验 (四)