A+B問題

A+B問題

描述

給出兩個整數a和b, 求他們的和, 但不能使用 + 等數學運算符。

說明

a和b都是 32位 整數,可以使用位運算

樣例

輸入1和2,輸出爲3

實現

class Solution {
public:
    /*
     * @param : An integer
     * @param : An integer
     * @return: The sum of a and b
     */
    int aplusb(int a, int b) {
        // write your code here
        if(a==0){
            return b;
        }
        if(b==0){
            return a;
        }
        //a異或b得到不用進位的位
        int c = a^b;
        //a與b得到需要進位的位,進1位後再加上c就是所求結果,此時迭代就行
        int d = (a&b)<<1;
        return aplusb(c,d);
    }
    };
發佈了39 篇原創文章 · 獲贊 9 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章