So what is the way to convert a binary number, say, 11011 to its decimal equivalent? A basic simple question for anyone who has gone through high school mathematics. Since I am one of them let me solve it here.
1*16 + 1*8 + 0*4 + 1*2 + 1*1 = 27
In words, number 27 is the sum of 1, 2, 8, and 16. More importantly any decimal number can be seen as a sum of numbers that are powers of two. And the binary equivalent of the number decides which of the power of two numbers take part in the summation. Like in the above case it was 1, 2, 8 and 16. Basic binary number concept right?
Lets take a fresh look at the puzzle I shared at this link. And the solution would become obvious to you. So all numbers less than 128 (binary equivalent of 128 is 1111111) can be seen as summation of numbers 1,2,4,8,16,32 and 64.
Off-course I didn't come to the solution through this route. I picked 1 and 2 and then kept including all the numbers that I could not sum up by using the numbers I already had. So 3 I got from 1+2. Because I could not get 4 from 1 and 2, I included 4 and marched on. By the time I reached 8, I noticed the pattern and tried 16 to verify. And then the above concept of binary numbers came to my mind. And so I was sure I had the answer.
Also I would like to share one interesting solution Rajesh gave. I will quote his response directly here. You can find his answer at this link in the comment section.
The answer is:
ONE each weight of 1,3,9,27 and 81 kg.
...
I want to weigh 2 as 3-1 and 4 kg as 9-(3+1).
I think this sequence can be extended up to 1000. If fact 1,3,9,27 and 81 can weigh up to 121 kgs.