任务描述
本关任务:计算硬币组合的情况。
现在有1
角、2
角、5
角硬币若干(可以认为数量无限),需要组合出n
角钱。
请你列出所有可能的组合。
5
角数量最少的情况优先输出,其次是2
角数量最少的,以此类推。
编程要求
右侧编辑器中有一个函数Cal
,它有一个参数n
,代表要组合出的钱数。
请在这个函数中补充代码,计算并输出所有可能的组合方式。
输出请按照<1角的数量> <2角的数量> <5角的数量>
的格式。
输入数据由评测系统读取,并传递给Cal
函数。具体见测试说明。
测试说明
平台会对你编写的代码进行测试:
测试输入: 10
预期输出:
10 0 0
8 1 0
6 2 0
4 3 0
2 4 0
0 5 0
5 0 1
3 1 1
1 2 1
0 0 2
#include <iostream>
#include <cstdio>
using namespace std;
/********** Begin **********/
//可以在此增加其他内容
void Cal(int n)
{
int i,j,k;
for(i=0;i<=n/5;i++){
for(j=0;j<=n/2;j++){
for(k=n;k>=0;k--){
if(n==5*i+2*j+k)
cout<<k<<" "<<j<<" "<<i<<endl;
}
}
}
//在此补充代码完成Cal函数功能
}
int main()
{
int n;
while(cin >> n)
Cal(n);
}