今天我面试了一个开发人员的工作,我不得不做这个能力倾向测试......
我被困在两个问题中:
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/