题目描述
小 Y 同学近来得到了一套新的砝码玩具,内含有 1g,2g,5g,10g 的砝码各若干枚(其 总重≤1000g),游戏的玩法是:由系统自动给出一个重量值,若给定的砝码能够组合成所需的重量,小 Y 要填写出一共有多少种组合方式,否则填写 cannot compose
。小 Y 同学总是找不出所有的情况,你能编个程序来帮助他吗?
输入
第一行输入 a1,a2,a3,a4;分别代表 1g,2g,5g,10g 砝码的数量。
第二行输入 weight,代表重量值。
输出
若能够组合,输出砝码一共有多少种组合方式,否则输出 cannot compose
。
输入输出样例
样例输入 #1
复制
1 2 3 3
20
样例输出 #1
复制
4
解答:
#include<stdio.h>
int main()
{
int a1, a2, a3, a4, weight;
int num = 0, i, j, k, l;
scanf("%d%d%d%d%d",&a1,&a2,&a3,&a4,&weight);
for (i = 0; i <= a1; i++)
{
for (j = 0; j <= a2; j++)
{
for (k = 0; k <= a3; k++)
{
for (l = 0; l <= a4; l++)
{
if (i * 1 + j * 2 + k * 5 + l * 10 == weight)
num++;
}
}
}
}
if (num == 0)
printf("cannot compose");
else
printf("%d", num);
return 0;
}