发现'x'和'y'之间的线性运算

时间:2014-05-16 18:39:59

标签: java math

发现'x'和'y'之间的线性运算......

这是我的代码:

public class Program {
    public static int Puzzle(int x, int y) {
        return ( x / y ) * y;
    }
}

结果如下:

x       y       EXPECTED RESULT     YOUR RESULT     DESCRIPTION 
1       1       1                   1           
2       2       2                   2           
919     648     1135                648             Mismatch

我无法想象要写什么代码。

2 个答案:

答案 0 :(得分:5)

x + (y / 3)

其中x和y是整数类型。你需要考虑为什么整数类型是如此重要。

答案 1 :(得分:1)

对于解决方案,您需要仔细研究单词"线性运算符":这意味着,对于xy,它会返回类似ax + by的内容,其中ab是常量。所以:

a * 1 + b * 1 = 1

a * 2 + b * 2 = 2 //可能会被删除,因为它与第一行相乘2

a * 919 + b * 648 = 1135

你可以从最后一个乘以648减去第一个相等,得到

a *(919 - 648)= 1135 - 648 => a = 487/271 => b = 1 - a =(271 - 487)/ 271 = -216 / 271

因此,生成的运算符是

f(x,y)= 487/271 * x - 216/271 * y