【题】
买东西
某商品有A、B、C三种品牌,各品牌的价格各不相同,其中A品牌的价格为每个5元, B品牌为每个3元,而C品牌为每3个1元。如果要用 M 元钱买 N 个该商品,要求每个商品至少买一个,编程求各种品牌各能买多少个。
输入:
先后输入M(钱数)及N(商品个数)的实际数值
输出:
所有可能情况下可以购买的3种商品的个数,按A、B、C品牌的顺序输出,用逗号分隔。例如:2,30,68;表示A品牌商品2个、B品牌商品30个、C品牌商品68个。
要求:因为有多个结果,结果的排序按照A品牌的个数从少到多的顺序输出。
测试输入 | 期待的输出 | 时间限制 | 内存限制 | 额外进程 | |
---|---|---|---|---|---|
测试用例 1 | 以文本方式显示
| 以文本方式显示
| 无限制 | 64M | 0 |
测试用例 2 | 以文本方式显示
| 以文本方式显示
| 无限制 | 64M | 0 |
测试用例 3 | 以文本方式显示
| 以文本方式显示
| 无限制 | 64M | 0 |
【代码】
没考虑任何优化的,将就着看吧。。。
#include "stdio.h"
int main(int argc, char **argv)
{
int a, b, c;
int m, n;
scanf("%d %d", &m, &n);
getchar();
for (a = 1; a <= m/5; a++)
{
for (b = 1; b <= m/3; b++)
{
for (c = 3; c <= m*3; c+=3)
{
if ((a*5+b*3+c/3) == m && (a+b+c) == n)
{
printf("%d,%d,%d\n", a, b, c);
}
}
}
}
return 0;
}