题目所述不能用 + - * / 这四个运算符号,所以想到用位运算
大体思路:先不考虑进位用异或把数字“加”起来,在“加”上进位就可以了。
具体步骤:
一个例子:
代码如下,参照代码看更清晰:
int Add(int num1, int num2) {
while(num2)//如果进位式不为0,则说明还要进位
{
int tmp1 = num1 ^ num2;//不考虑进位“加”起来
int tmp2 = (num1 & num2) << 1;//要“加”的进位式
num2 = tmp2;//两数替换,下次循环完成进位
num1 = tmp1;
}
return num1;
}
感谢观看!