1. 程式人生 > >(劍指offer)不用加減乘除做加法

(劍指offer)不用加減乘除做加法

時間限制: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;
    }
}