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

不用加减乘除做加法

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

位运算第一题 随便看看认识认识
class Solution {
public:
    int Add(int num1, int num2) {
        // 不是算法 随便看看答案
        while(num2!=0){
            int temp=num1^num2;
            //二进制的加,不考虑进位
            num2=(num1&num2)<<1;
            //二进制的与左移会产生出现进位
            //如果这个每位为0则说明没有进位,则最终结果就是异或的值
            //进位与异或相加则为结果,又回到了两个数相加的过程,重复上述步骤直到进位值为0
            num1=temp;
        }
        return num1;
    }
};
题解 文章被收录于专栏

一遍做剑指offer 一边保存做题步骤 并附带详细注释哦

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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