hdoj-2566-统计硬币(解题报告)
来源:互联网 发布:英国可以用淘宝吗 编辑:程序博客网 时间:2024/06/01 07:46
题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=2566
问题描述:
统计硬币
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 7712 Accepted Submission(s): 5263
Problem Description
假设一堆由1分、2分、5分组成的n个硬币总面值为m分,求一共有多少种可能的组合方式(某种面值的硬币可以数量可以为0)。
Input
输入数据第一行有一个正整数T,表示有T组测试数据;
接下来的T行,每行有两个数n,m,n和m的含义同上。
接下来的T行,每行有两个数n,m,n和m的含义同上。
Output
对于每组测试数据,请输出可能的组合方式数;
每组输出占一行。
每组输出占一行。
Sample Input
23 54 8
Sample Output
12
Author
lemon
题目分析:求n个硬币,总面值为m有多少种情况。
解题思路:感觉这道题和‘百钱买百鸡’的题目类似,用双重循环分别控制5分和2分硬币个数,k=n-i-j保证了是n个硬币,若总钱数为m,则计数累加。
错误原因:开始时循环条件没有控制好,导致k可能为负数,某些数据不正确。
代码实现:
#include<stdio.h>int main (void){ int T,m,n,i,j,k,a; scanf("%d",&T); while(T--) { a=0; scanf("%d%d",&n,&m); for(i=0;i<=m/5;i++) { for(j=0;j<=m/2;j++) { k=n-i-j; //保证硬币和为n if(k>=0 &&(i*5+j*2+k==m)) //注意,k不能为负数 a++; } } printf("%d\n",a); } return 0;}
0 0
- hdoj-2566-统计硬币(解题报告)
- hdoj 2566 统计硬币
- hdoj-2017-字符串统计(解题报告)
- HDOJ 2566 统计硬币 (水)
- HDOJ-1251-统计难题 解题报告
- 【解题报告】硬币问题
- HDOJ/HDU 2566 统计硬币(公式~遍历~)
- OJ解题报告 4976:硬币
- 【解题报告】uva674_Coin Change(硬币找零, dp, 完全背包)
- 【解题报告】uva562_Dividing coins(划分硬币, dp, 01背包)
- HDOJ 2566 统计硬币
- 解题报告-HDOJ-1086(几何问题)
- 解题报告-HDOJ-1285(拓扑排序)
- 解题报告-HDOJ-1251(字典树)
- 解题报告-HDOJ-1075(字典树)
- hdoj-2043-密码(解题报告)
- hdoj-1008-Elevator(解题报告)
- hdoj-2005-第几天?(解题报告)
- 【Java】接口与抽象类
- Java中的BIO、NIO、AIO(NIO2)
- ArduPilot Copter Release Notes 中文翻译
- java基础—I/O流
- 面试机试问题之备考
- hdoj-2566-统计硬币(解题报告)
- SQL语言
- dubbo进阶--入门实例
- LeetCode70. Climbing Stairs
- 魔力手环
- 蓝桥杯☆难度题目(6,7题)
- 2017.04.09:Mysql编程
- 数据结构—栈应用(一)数制转换
- JavaScript中linux时间戳与日期的转换