题目:
给出两个整数a和b,求他们的和并以整数(int)的形式返回。
说明:
不需要在控制台输入数据,只需要根据SUM传入的两个参数a和b,计算他们的和并返回就行。
虽然可以直接使用算法运算符,但是可以挑战一些自己不使用算法运算符,可以试试(使用逻辑运算符和比较运算符)。
示例:
样例1:
a=1
b=2
输出:
3
解释:
a+b= 1+2 =3
样例2:
a=-1
b=1
输出:
0
解释:
a+b= -1+1 =0
代码段:
public class Demo {
public static void main(String[] args) {
Soultion sc=new Soultion();
}
}
class Soultion{
public Soultion(){
System.out.println(Sum(-1,1));
}
public int Sum(int a,int b){
while (b!=0){
int _a=a^b;
int _b=(a&b)<<1;
a=_a;
b=_b;
//主要利用异或运算来完成,异或运算有一个别名叫做:不进位加法。
//那么a^b就是a和b相加之后,该进位的地方不进位的结果。
//a&b就是a和b里都是1的那些位置,a & b << 1 就是进位之后的结果。
//所以a+b=(a^b)+(a&b << 1),_a=a^b,_b=(a&b)<<1;
}
return a;
}
}