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

不用加减乘除做加法

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;
    }
};
全部评论

相关推荐

没hc还海面!呜呜,避雷
回收旧报纸:没有海面吧,我做完笔试有一个多月了,还没消息
点赞 评论 收藏
分享
牛客46693249...:刷kpi的,海康这个岗位已经有实习生转正了
如何判断面试是否凉了
点赞 评论 收藏
分享
09-24 18:30
已编辑
长春工业大学 产品经理
小肥罗:HR就是好人的缩写哈哈哈哈
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务