Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 每个项目的算法_Java_Algorithm - Fatal编程技术网

Java 每个项目的算法

Java 每个项目的算法,java,algorithm,Java,Algorithm,产品A价格为10美元,B价格为3美元,C价格为0.50美元。 一个人花100美元买了100件东西。每个人买了多少件 我发现答案是- 94 * 0.5 = 47 1 * 3 = 3 5 * 10 = 50 但是,我无法用java实现它,因为我从Hit and Trial中得到了解决方案。 解决这个问题的算法是什么?普通暴力: for (int i1 = 0; i1 <= 10; i1++) { for (int i2 = 0; i2 < 3

产品A价格为10美元,B价格为3美元,C价格为0.50美元。 一个人花100美元买了100件东西。每个人买了多少件

我发现答案是-

94 * 0.5 = 47 
1 * 3    =  3    
5 * 10  =  50
但是,我无法用java实现它,因为我从Hit and Trial中得到了解决方案。 解决这个问题的算法是什么?

普通暴力:

   for (int i1 = 0; i1 <= 10; i1++) {
        for (int i2 = 0; i2 < 34; i2++) {
            int i3 = 100 - i2 - i1;
            int total = i1 * 10 + i2 * 3 + i3 / 2;
            if (total == 100 && i3 % 2 == 0)
                System.out.println(i1 + " * 10 + " + i2
                        + " * 3 + " + i3 + " * 0.5 = 100");

        }
    }

for(int i1=0;i1这是的一个变体,您可以寻找一个基于的解决方案,它比蛮力(在计算复杂性方面)更好。简单的搜索会产生类似以下链接

您需要实现解这两个方程的算法

A   +  B + C    = 100 -----------(1)
10A + 3B + 0.5C = 100 -----------(2)
从(2)中,我们可以得出:

C = 100 - A - B
在(2)中替换此信息

那么你可以扣除:

B = 20 - (19A/5)
现在,尝试(使用整数循环)找出
A
的“整”值是多少,
B
将成为整数值(通常在此类问题中,您总是购买整件商品,比如水果,而不是分数)

你会发现当A=5,B=1


继续以这种方式求解方程,并用Java变量替换A、B和C,您将能够提供解决方案。

这两种解决方案都可以很容易找到。ring Bear已经给出了几乎所有的解决方法。ring Bear以以下方式结束:

B = 20 - (19A/5)
不过,我们知道一些其他的事情:

A, B, and C are all non-negative integer values.
这意味着19A/5必须是(1)整数(否则B将不是整数),以及(2)最多20(否则B将是负数)。这意味着对于(1),A必须是5的倍数,对于(2),A最多必须是5

还应注意,要求19A/5
A, B, and C are all non-negative integer values.
19A <= 100
for (A = 0; 19*A <= 100; A += 5)
{
  // Show the solution for this value of A (with B = 20 - 19A/5 and C = 100 - A - B).
}