Here is algo:
1. Receive A and B as input.
2. if A or B is zero then goto step 8.
3. xor_a_b = A^B
4. and_a_b = A & B << 1
5. A = xor_a_b
6. B = and_a_b
7. goto step 2
8. Print non zero value of A, B
Lets try doing some example to understand how things work with above logic
A | B | A^B | A&B|A&B<<1
2 | 3 | 01 | 10| 100
1 | 4 | 101|0|0
0|5
If Any of operand is zero, return other operand which is Sum. So 5 is answer.
Let try with other arguments
A | B | A^B | A&B|A&B<<1
5 | 7 | 010 | 101| 1010
2 | 10 | 1000|10|100
8|4|1100|0|0
12|0
So operand 2 is zero, so result is 12.
Comments
Post a Comment