题目:
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/、四则运算符号
思路:
两数异或得到没有进位的数,两数相与得到进位结果,进位左移一位,再与异或结果相异或,直至进位为0
代码:
#include <iostream>
using namespace std;
//题目:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/、四则运算符号
//思路:两数异或得到没有进位的数,两数相与得到进位结果,进位左移一位,再与异或结果相异或,直至进位为0
int Add(int num1 , int num2)
{
int sum , carry;
do
{
sum = num1 ^ num2;
carry = (num1 & num2) << 1;
num1 = sum;
num2 = carry;
} while (num2 != 0);
return num1;
}
int main()
{
int num1 = 15 , num2 = 20;
cout<<Add(num1 , num2)<<endl;
}