Write a function that adds two numbers. You should not use + or any arithmetic operators - BunksAllowed

BunksAllowed is an effort to facilitate Self Learning process through the provision of quality tutorials.

Community

Write a function that adds two numbers. You should not use + or any arithmetic operators

Share This
There are a couple of suggestions for figuring out this problem. 
 
Our first instinct in problems like these should be that we’re going to have to work with bits. Why? Because when you take away the + sign, what other choice do we have? Plus, that’s how computers do it. Our next thought in problems like these should be to really, really understand how you add. 

int add_no_arithm(int a, int b) { if (b == 0) return a; int sum = a ^ b; // add without carrying int carry = (a & b) << 1; // carry, but don’t add return add_no_arithm(sum, carry); // recurse }

Your interviewer is looking for two things in this problem: 
  • Can you break down a problem and solve it? 
  • Do you understand how to work with bits?

Happy Exploring!

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.