Using ADD, SUB, MULT and DIV to put specific values in squares?
I had a developer interview today and had to do this aptitude test ... I got stuck on two questions:
box 1 box 2 box 3
A B C
How do I put A in each box with only those 4 operators (ADD, SUB, MULT and DIV)?
box 1 box 2 box 3
You have numbers 1,2 and 3, which can be either box1 box2 or box3, but we don't know which one ... How to put 7 in box 3?
Can someone explain to me how to do this? ps: syntax: ADD, 1,2,3 => box3 = box1 + box2
thank
source to share
For the first question, you can set the B and C fields to 2A, simply by keeping A + A in each:
ADD 2, 1, 1
ADD 3, 1, 1
Now, just subtract A from each field:
SUB 2, 2, 1
SUB 3, 3, 1
This causes A to persist all over the place. Thus, the resulting program
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
On the second question, one cute trick would be to split the box by its own value in order to put a 1. For example:
DIV 1, 1, 1
Now put 2 in box 2 by doubling the contents of box 1 and saving it there:
ADD 2, 1, 1
Now put 4 in box 3 by doubling the contents of box 2 and saving it there:
ADD 3, 2, 2
Then add 2 to box three by adding to the contents of box 3. This makes box 3 hold 6:
ADD 3, 3, 2
Finally, add 1 to box three by adding content to box 3. This makes box 3 contain 7:
ADD 3, 3, 1
So the general program
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
Hope this helps!
source to share