刷算法 - a+b问题

78f65c5091dd306226282130c3a85105.jpg

问题描述

给出两个整数 a 和 b , 求他们的和。

显然你可以直接 return a + b,但是你是否可以挑战一下不这样做?

提示

两数异或得到无进位的加法,两数相与并且左移一位表示进位.

详细代码:

public int plus(int a, int b){
          while(b != 0){
                    int ta = a^b;
                    int tb = (a&b)<<1;
                    a = ta;
                    b = tb;
          }
          return a;
}


标 题:《刷算法 - a+b问题
作 者:zeekling
提 示:转载请注明文章转载自个人博客:小令童鞋

评论

取消