1. 程式人生 > >【LintCode】1、A + B問題

【LintCode】1、A + B問題

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; } }