1. 程式人生 > >1. A + B 問題

1. A + B 問題

1. A + B 問題

給出兩個整數 aa 和 bb , 求他們的和。

樣例

如果 a=1 並且 b=2,返回3

挑戰

顯然你可以直接 return a + b,但是你是否可以挑戰一下不這樣做?(不使用++等算數運算子)

說明

a和b都是 32位 整數麼?

  • 是的

我可以使用位運算子麼?

  • 當然可以

注意事項

你不需要從輸入流讀入資料,只需要根據aplusb的兩個引數a和b,計算他們的和並返回就行。

class Solution {
public:
    /**
     * @param a: An integer
     * @param b: An integer
     * @return: The sum of a and b 
     */
    int aplusb(int a, int b) {
        // write your code here
        while(b!=0)
        {
            int _a=a^b;
            int _b=(a&b)<<1;
            a=_a;
            b=_b;
        }
        return a;
    }
};