(劍指offer)不用加減乘除做加法
阿新 • • 發佈:2018-12-09
時間限制:1秒 空間限制:32768K 熱度指數:83474
題目描述
寫一個函式,求兩個整數之和,要求在函式體內不得使用+、-、*、/四則運算子號
程式碼1:
public class Solution {
public int Add(int num1,int num2) {
return Integer.sum(num1, num2);
}
}
程式碼2:
public class Solution { public int Add(int num1,int num2) { if(num1 > 0){ while(num1-->0){ num2++; } }else if(num1 < 0){ while(num1++<0){ num2--; } } return num2; } }
程式碼3:
public class Solution {
public int Add(int num1,int num2) {
while(num1 != 0){
int sum = num1 ^ num2;//相加,不考慮進位
int carry = (num1 & num2) << 1;//僅用於進位
num1 = carry;
num2 = sum;
}
return num2;
}
}