1 条题解
-
0
思路分析
1. 任务拆解:
- 读取总张数n
- 将100元换成n张10元、5元、2元、1元钞票
- 要求每种面额至少1张
- 按字典序输出所有方案
2. 关键点分析:
- 设10元张数为i,5元张数为j,2元张数为k,1元张数为m
- 约束条件:
- i + j + k + m = n
- 10i + 5j + 2k + m = 100
- i ≥ 1, j ≥ 1, k ≥ 1, m ≥ 1
- 通过三重循环枚举i、j、k,计算m
3. 步骤规划:
- 读取n的值
- 外层循环枚举10元张数i(1到10,因为最多10张)
- 中层循环枚举5元张数j(1到20,因为最多20张)
- 内层循环枚举2元张数k(1到50,因为最多50张)
- 计算1元张数m = n - i - j - k
- 检查m ≥ 1且金额总和为100
- 输出满足条件的方案
4. 代码对应:
int n;cin>>n;→ 读取总张数for(int i=1;i<=10;i++)→ 枚举10元张数for(int j=1;j<=20;j++)→ 枚举5元张数for(int k=1;k<=50;k++)→ 枚举2元张数int m=n-i-j-k→ 计算1元张数if(m>0 && i*10+j*5+k*2+m==100)→ 检查张数≥1且金额=100cout<<i<<" "<<j<<" "<<k<<" "<<m<<endl→ 输出方案
- 1
信息
- ID
- 1137
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 1
- 标签
- (无)
- 递交数
- 261
- 已通过
- 171
- 上传者