题解 | #不用加减乘除做加法#
不用加减乘除做加法
http://www.nowcoder.com/practice/59ac416b4b944300b617d4f7f111b215
1 + 0 = 1 | 0
0 + 1 = 0 | 1
0 + 0 = 0 | 0
1 & 1 = 1 ;
1 | 1 = 1 ;
(1 & 1) << 1 = 10 ;
1 + 1 = 10 = ((1 & 1) << 1) + (1 | 1) - (1 & 1)
a + b ==> (((a & b) << 1) + (a | b) - (a & b))
class Solution { public: int Add(int num1, int num2) { return (((num1 & num2) << 1) + (num1 | num2) - (num1 & num2)); } };