不用加减乘除做加法

题目

  写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。

 

所以有如下解法:

  1. 异或:无进位求和
  2. 与:求进位数
class Solution {
public:
    int add(int a, int b) {
        if (a == 0) {
            return b;
        }

        while (b != 0) {
            int tmp = a ^ b;
            b = ((unsigned int)(a & b) << 1);
            a = tmp;
        }
        return a;
    }
};

 

posted on 2019-01-27 15:18  tianzeng  阅读(162)  评论(0编辑  收藏  举报

导航