今天我面试了一个开发人员的工作,我不得不做这个能力倾向测试......
我被困在两个问题中:

box 1  box 2  box 3
 A      B      C

如何将 A 放在只有这 4 个运算符(ADD、SUB、MULT 和 DIV)的每个框中?
box 1  box 2  box 3

您有数字 1,2 和 3 可以在 box1 box2 或 box3 中,但我们不知道哪个是哪个...如何将 7 放入 box3 ?

有人可以解释我该怎么做吗?
ps:语法是:ADD,1,2,3 => box3 = box1 + box2

谢谢

最佳答案

对于第一个问题,您只需将 A + A 存储在每个框 B 和 C 中,就可以将它们设置为等于 2A:

ADD 2, 1, 1
ADD 3, 1, 1

现在,只需从每个框中减去 A:
SUB 2, 2, 1
SUB 3, 3, 1

这导致 A 存储在任何地方。由此产生的程序是
ADD 2, 1, 1  // Box 1 = A  Box 2 = 2A  Box 3 = C
ADD 3, 1, 1  // Box 1 = A  Box 2 = 2A  Box 3 = 2A
SUB 2, 2, 1  // Box 1 = A  Box 2 = A   Box 3 = 2A
SUB 3, 3, 1  // Box 1 = A  Box 2 = A   Box 3 = A

对于第二个问题,一个可爱的技巧是将某个盒子除以它自己的值,然后将 1 放入其中。例如:
DIV 1, 1, 1

现在,让我们通过将框 1 的内容加倍并将其存储在那里,将 2 放入框 2:
ADD 2, 1, 1

现在,让我们通过将框 2 的内容加倍并将其存储在那里,将 4 放入框 3:
ADD 3, 2, 2

接下来,通过添加框 3 的内容将 2 添加到框 3。这使框 3 容纳 6:
ADD 3, 3, 2

最后,通过添加框 3 的内容将 1 添加到框 3。这使得框 3 包含 7:
ADD 3, 3, 1

总程序是这样的
DIV 1, 1, 1   // Box 1 = 1  Box 2 = ?  Box 3 = ?
ADD 2, 1, 1   // Box 1 = 1  Box 2 = 2  Box 3 = ?
ADD 3, 2, 2   // Box 1 = 1  Box 2 = 2  Box 3 = 4
ADD 3, 3, 2   // Box 1 = 1  Box 2 = 2  Box 3 = 6
ADD 3, 3, 1   // Box 1 = 1  Box 2 = 2  Box 3 = 7

希望这可以帮助!

关于algorithm - 使用 ADD、SUB、MULT 和 DIV 将某些值放入框中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9828933/

10-12 17:33