题解 | #不用加减乘除做加法#

不用加减乘除做加法

http://www.nowcoder.com/practice/59ac416b4b944300b617d4f7f111b215

解题思路

^ 异或运算符可以看成是不进位的加法, 因此我们可以有以下思路,不断将num1与num2进行不进位加法,但将进位的值赋值num2,此后继续进行不进位加法,直到进位值为0。

int Add(int num1, int num2) 
{
    while(num2)
    {
        int t = (num1 & num2) << 1;
        num1 ^= num2;
        num2 = t;
    }
    return num1;
}
全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务