OpenJudge NOI 2.1 7621:硬币面值组合
【题目链接】
OpenJudge NOI 2.1 7621:硬币面值组合
【题目考点】
1. 枚举
2. 输出数字,0占位
在m个字符位置中输出数字n,右对齐,其余部分由0占位:
printf("%0md", n)
;
cout << setfill('0') << setw(m) << n;
【解题思路】
- 枚举对象:a, b, c
- 枚举范围:
a:1角硬币最少0个,最多有n个。
b:2角硬币最少0个,最多有n/2个。
c:5角硬币最少0个,最多有n/5个。 - 判断条件: a + 2 b + 5 c = n a+2b+5c = n a+2b+5c=n
根据题目要求,先让c从小到大遍历,再让b从小到大遍历,最后看a。
【题解代码】
解法1:枚举 三重循环 scanf/printf
#include<bits/stdc++.h>
using namespace std;
int main()
{int a, b, c, n, k = 1;//k:编号 scanf("%d", &n);for(c = 0; c <= n/5; ++c)for(b = 0; b <= n/2; ++b)for(a = 0; a <= n; ++a){if(a+2*b+5*c == n)printf("%03d%12d%12d%12d\n", k++, a, b, c);}return 0;
}
解法2:枚举 双重循环 cin/cout
#include<bits/stdc++.h>
using namespace std;
int main()
{int a, b, c, n, k = 1;//k:编号 cin >> n;for(c = 0; c <= n/5; ++c)for(b = 0; b <= (n-c*5)/2; ++b)//去掉5角占用的钱数,剩下n-c*5{a = n-b*2-c*5;//去掉5角,2角占用的钱数,剩下的钱数就是1角的个数。此处求出的a一定大于等于0cout << setfill('0') << setw(3) << k++ << setfill(' ') << setw(12) << a << setw(12) << b << setw(12) << c << endl;}return 0;
}
OpenJudge NOI 2.1 7621:硬币面值组合相关推荐
- 7621:硬币面值组合
描述 使用1角.2角.5角硬币组成 n 角钱. 设1角.2角.5角的硬币各用了a.b.c个,列出所有可能的a, b, c组合. 输出顺序为:先按c的值从小到大,若c相同则按b的值从小到大. 输入 一个 ...
- 硬币面值组合(C++)
硬币面值组合 总时间限制: 1000ms 内存限制: 65536kB 描述 使用1角.2角.5角硬币组成 n 角钱. 设1角.2角.5角的硬币各用了a.b.c个,列出所有可能的a, b, c组合. 输 ...
- 硬币兑换python 每个面值有多个_【算法27】硬币面值组合问题
问题描述 假设我们有8种不同面值的硬币{1,2,5,10,20,50,100,200},用这些硬币组合够成一个给定的数值n.例如n=200,那么一种可能的组合方式为 200 = 3 * 1 + 1*2 ...
- 动态规划之硬币面值组合问题
原文链接:http://www.cnblogs.com/python27/archive/2013/09/05/3303721.html 问题描述 假设我们有8种不同面值的硬币{1,2,5,10,20 ...
- 硬币面值组合问题(完全背包问题)
参考:http://www.cnblogs.com/python27/archive/2013/09/05/3303721.html i表示只用前i种硬币,sum表示要组合出的面值 下图是当有面值为1 ...
- 硬币面值组合(上台阶)
假设我们有8种不同面值的硬币{1,2,5,10,20,50,100,200},用这些硬币组合够成一个给定的数值n.问总过有多少种可能的组合方式? 类似的题目还有: [华为面试题] 1分2分5分的硬币三 ...
- python硬币面值组合_【算法27】硬币面值组合问题
问题描述 假设我们有8种不同面值的硬币{1,2,5,10,20,50,100,200},用这些硬币组合够成一个给定的数值n.例如n=200,那么一种可能的组合方式为 200 = 3 * 1 + 1*2 ...
- 硬币面值组合(C++)(枚举)
总时间限制: 1000ms 内存限制: 65536kB 描述 使用1角.2角.5角硬币组成 n 角钱. 设1角.2角.5角的硬币各用了a.b.c个,列出所有可能的a, b, c组合. 输出顺序 ...
- 硬币面值组合的算法题解
方法一 转自http://www.cnblogs.com/python27/archive/2013/09/05/3303721.html 动态规划的方法,是将m*n(m表示硬币的种类,n表示所要组成 ...
最新文章
- 手把手教线性回归分析(附R语言实例)
- 防止一个进程被多次启动
- liunx 安装 zookeeper(转)
- 60行代码俄罗斯方块
- Docker 学习总结(71)—— Docker、Docker Compose、Docker Swarm 之间的区别
- 民熙科技发布货物资产数字化系统“识物链”2.0版本
- Eclipse启动tomcat项目乱码而终端启动tomcat正常的解决办法
- jQuery动态星级评分效果实现方法
- Spring动态代理实现
- vue3关闭语法错误提示
- python下拉框二级联动_Excel数据规范输入技巧 | 二级联动下拉菜单
- 英语口语175之每日十句口语
- CSS实现鼠标经过网页图标弹出微信二维码
- 理解什么是接口测试?怎样做接口测试?
- 全球前10大数据库产品厂家
- java并行流 阻塞主线程_记一次使用Java8并行流导致的服务瓶颈问题排查
- AVProVideo插件踩坑:视频重现时停止+视频尺寸
- GeoGebra笔记3:函数绘图区基本设置(x,y轴范围……)
- CNN卷积神经网络—LeNet原理以及tensorflow实现mnist手写体训练
- 大数据专业考研书_大数据考研-可以考的专业