A38319. 硬币面值组合使用 1 角、 2 角、 5 角硬币组成 n 角钱。设 1 角、 2 角、 5 角的硬币各用了 a、 b、 c 个, 列出所有可能的 a, b, c 组合。输出顺序为: 先按 c 的值从小到大, 若 c 相同则按 b 的值从小到大。输入一个整数 n(1 <= n <= 1 00), 代表需要组成的钱的角数。输出输出有若干行, 每行的形式为: i a b c 第 1 列 i 代表当前行…
填空题
中等
知识点
题目描述
硬币面值组合
使用 1 角、 2 角、 5 角硬币组成 n 角钱。
设 1 角、 2 角、 5 角的硬币各用了 a、 b、 c 个, 列出所有可能的 a, b, c 组合。
输出顺序为: 先按 c 的值从小到大, 若 c 相同则按 b 的值从小到大。
输入
一个整数 n(1 <= n <= 1 00), 代表需要组成的钱的角数。
输出
输出有若干行, 每行的形式为: i a b c 第 1 列 i 代表当前行数(行数从 001 开始, 固定 3 个字符宽度,宽度不足 3 的用 0 填充),后面 3 列 a, b, c 分别代表 1 角、 2 角、 5 角硬币的个数(每个数字固定 1 2个字符宽度, 宽度不足的在左边填充空格) 。
样例输入
10样例输出
001 10 0 0
002 8 1 0
003 6 2 0
004 4 3 0
005 2 4 0
006 0 5 0
007 5 0 1
008 3 1 1
009 1 2 1
010 0 0 2参考答案
#include<bits/stdc++.h>
using namespace std;
int main() {
int a,b=0;
cin>>a;
for (int x=0;x<=a;x++) {
for (int j=0;j<=a;j++) {
for (int i=a;i>=0;i--) {
if(i+2*j+5*x==a) {
b+=1;
printf("%03d%12d%12d%12d\n",b,i,j,x);
}
}
}
}
return 0;
}
上一题
下一题