面試題65.不用加減乘除做加法

面試題65.不用加減乘除做加法

題目描述

寫一個函數,求兩個整數之和,要求在函數體內不得使用 “+”、“-”、“*”、“/” 四則運算符號。

示例:

輸入: a = 1, b = 1
輸出: 2

提示:

a, b 均可能是負數或 0
結果不會溢出 32 位整數

題解

邏輯異或相當於無進位的求和;
邏輯與相當於求每位的進位數;
重複求和過程直到進位爲0;代碼如下:

class Solution {
    public int add(int a, int b) {
        while(b!=0){
            int temp = a^b;
            b=(a&b)<<1;
            a=temp;
        }
        return a;
    }
}
提交結果

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章