【LintCode】1、A + B問題
阿新 • • 發佈:2019-01-06
1、題目:A + B 問題
描述:
給出兩個整數a和b, 求他們的和, 但不能使用 + 等數學運算子。注意事項:
你不需要從輸入流讀入資料,只需要根據aplusb的兩個引數a和b,計算他們的和並返回就行。樣例:
如果 a=1 並且 b=2,返回3
2、分析
無法使用+,可以使用位運算子
a ^ b //可以看做不進位加法
a & b // 可以看做只算進位結果。
3、AC程式碼
public class Solution {
/*
* @param a: An integer
* @param b: An integer
* @return: The sum of a and b
*/
public int aplusb(int a, int b) {
// write your code here
while (b != 0) {
int a_temp = a ^ b;
int b_temp = (a & b) << 1;
a = a_temp;
b = b_temp;
}
return a;
}
}