Skip to main content

Adding two number wihtout arithmatic operation and without loop


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

Popular posts from this blog

Car Parking Problem

There is n parking slots and n-1 car already parked. Lets say car parked with initial arrangement and we want to make the car to be parked to some other arrangement. Lets say n = 5, inital = free, 3, 4, 1, 2 desired = 1, free, 2, 4 ,3 Give an algorithm with minimum steps needed to get desired arrangement. Told by one of my friend and after a lot of search i really got a nice solution. I will post solution in comment part

JDBC connection factory

  Class ConnectionManager {   Queue<Connection> availableConnection;   List <Connection> allotedConnection; ConnectionManager( Integer noOfConnections, ConnectionPoperties props ) {     //Create the no of connection objects and assign to avaialbleConnection } Conection getConnection() {     syncronized( this.class) { if (availableConnection.isEmpty() ) {          throw ConnectionExhausted();       }       conn = availableCOnnection.poll();       alottledConectiion.add(conn); } return conn; } synchronized Conection releaseConnection(Connection conn) {        alottedconnection.remove(conn);    avaialbleConection.add(conn); }

Median of Five Numbers

U have 5 NOs , X1,X2,X3,X4,X5 With minimum no. of comparisons we have to find a median. SWAP(X,Y) function is available to u . I have a answer of six comparisons and eight swaps....wait for people to find out by themselves.