剑指offer48——不用加减乘除做加法

79 阅读1分钟

题目描述

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

题解

#include <iostream>

using namespace std;

int Add(int num1, int num2) {
    while (num2) {
        int carry = num1 ^num2;
        num2 = (num1 & num2) << 1;
        num1 = carry;
    }
    return num1;
}

int main() {
    ios::sync_with_stdio(false);
    int a, b;
    cin >> a >> b;
    cout << Add(a, b);
    return 0;
}