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

不用加减乘除做加法

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

通过异或运算可以得到两数的无进位加法结果,通过与后左移一位可以得到进位,结合这两个运算就可以得到加法结果。

class Solution {
public:
    int Add(int num1, int num2) {
        int result  = num1 ^ num2;
        int carry = (num1 & num2) << 1;
        while(carry){
            int temp1 = carry;
            int temp2 = result;
            result = result ^ carry;
            carry = (temp1 & temp2) << 1;
        }
        return result;
    }
};
全部评论

相关推荐

2024-12-30 22:49
长沙理工大学 Java
神哥了不得:没什么可以指导的地方了,简历确实牛,我大号分享过投递策略,广投就行
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务