当前位置:编程学习 > JAVA >>

跪求版主解答

已知有三种价格的产品,产品A(可以卖1、2、3、4元)产品B(可以卖5、6、7元)产品C(可以卖8、9、10元),产品数量比例:产品A、产品B、产品C的比例可以为3:3:4也可以为其它比例,但总比例和为10,已知三种产品的价格总和为149元,问可以怎么组合着卖?多少产品A(1,2,3,4元的分别是多少)?产品B(5、6、7元的产品分别是多少)?产品C(8、9、10元的产品分别是多少)? 跪求版主解答 --------------------编程问答-------------------- 首先撇开比例,一共有121607276中组合,你怎么看? --------------------编程问答-------------------- 此题必有蹊跷 --------------------编程问答-------------------- 那就等高手吧,看看能否在半小时之内执行出结果。
149太大了,49还差不多。 --------------------编程问答-------------------- 没看懂是什么意思。。。求所有的组合并且数量满足一定的比例,所有价格加在一起为149?如果这样讲最后问怎么组合着卖是什么意思?感觉像是求最值....表示看不懂.... --------------------编程问答-------------------- --------------------编程问答-------------------- 版主哪里去了啊? --------------------编程问答-------------------- 下面是我的算法:

public class JavaTest {
public static void main(String[] args) {
for (int a = 1; a <= 4; a++) {
for (int b = 5; b <= 7; b++) {
for (int c = 8; c <= 10; c++) {
for (int x = 0; x <= 149; x++) {
for (int y = 0; y <= 149 / 5; y++) {
for (int z = 0; z <= 149 / 8; z++) {
if (a * x + b * y + c * z == 149) {
print(a, b, c, x, y, z);
}
}
}
}
}
}
}
}

private static void print(int a, int b, int c, int x, int y, int z) {
// 算出x,y,z的最大公约数
int i = divisor(divisor(x, y), z);
x /= i;
y /= i;
z /= i;
//去掉最简比例中三个数之和大于10的比例数
if (x + y + z <= 10) {
int j = x + y + z;
//判断最简比例能不能转化为和为10的比例数,如果能就打印出结果
if (10 % j == 0) {
System.out.println("它们的价格为: " + a + ", " + b + ", " + c);
System.out.println("它们的比例为: " + (10/j) * x + ": " + y + ": " + z);
}
}
}

/**
 * 利用辗转相除法求两个数的最大公约数
 */
private static int divisor(int x, int y) {
int a = 0;
if (x != 0 && y != 0) {
if (x > y) {
while (true) {
a = x % y;
if (a == 0)
return y;
x = y;
y = a;
}
} else {
while (true) {
a = y % x;
if (a == 0)
return x;
y = x;
x = a;
}
}
} else {
if (x == 0)
return y;
if (y == 0)
return x;
}
return 0;
}
}



结果很意外,就一种方案:10:0:0。也不知道对不对。。。 --------------------编程问答-------------------- 这么辛苦赞一个,但结果不对 --------------------编程问答-------------------- 再把问题搞简单点,看有没有人会
产品A数量为2(可以卖1、2、3、4元)产品B数量为8(可以卖5、6、7元)产品C数量为10(可以卖8、9、10元)已知三种产品的价格总和为149元问产品A(1,2,3,4元的产品分别是多少)?产品B(5、6、7元的产品分别是多少)?产品C(8、9、10元的产品分别是多少)? --------------------编程问答--------------------
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,