写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
public class Solution {
public int Add(int num1,int num2) {
int step1=0,step2=0;
do{
step1=num1^num2;
step2=(num1&num2)<<1;
num1=step1;
num2=step2;
}while(step2!=0);
return step1;
}
}
c++没问题,反而是python出现问题了,请回顾
class Solution {
public:
int Add(int num1, int num2)
{
int step1=num1^num2;
int step2=num1&num2;
if (step2!=0) return Add(step1,step2<<1);
else return step1;
}
};
class Solution:
def Add(self, num1, num2):
print(num1,num2)
step1=num1^num2
step2=num1&num2
if step2!=0:return self.Add(step1,step2<<1)
else:return step1
t=Solution()
print(t.Add(-1,2))
位运算括号很重要,错误
class Solution {
public:
int Add(int num1, int num2)
{
int step1=num1^num2;
int step2=(num1&num2)<<1;
while(step2!=0){
num1=step1;
num2=step2;
step1=num1^num2;
step2=(num1&num2)<<1;
}
return step1;
}
};