[牛客习题]不使用算数运算符实现加法

2021/02/08 09:58
阅读数 76

题目描述

给定两个int A和B。编写一个函数返回A+B的值
不得使用+或其他算数运算符(- * /)。

测试样例:

输入:1,2
返回:3

题目分析

  • 二进制位异或运算相当于不进位的加法
  • 二进制位的按位与运算相当于每一位向前一位的进位
  • 结合以上两种就可以实现加法运算

参考代码:

class UnusualAdd {
public:
    int addAB(int A, int B) {
        // write code here
        int sum, carry;

        while(B != 0)
        {
            sum = A ^ B;
            carry = (A & B) << 1;
            A = sum;
            B = carry;
        }
        return sum;
    }
};
展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部