测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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; }
上一题 下一题