程序员面试金典-面试题 16.26. 计算器

题目:

设计一个函数把两个数字相加。不得使用 + 或者其他算术运算符。

示例:

输入: a = 1, b = 1
输出: 2

 

提示:

  • ab 均可能是负数或 0
  • 结果不会溢出 32 位整数

分析:

剑指Offer-48.不用加减乘除做加法(C++/Java)参考这篇讲解。

程序:

class Solution {
    public int add(int a, int b) {
        if(a == 0)
            return b;
        if(b == 0)
            return a;
        int carry = 1;
        while(b != 0){
            carry = (a & b) << 1;
            a ^= b;
            b = carry; 
        }
        return a;
    }
}

 

posted @ 2020-03-20 15:26  silentteller  阅读(234)  评论(0编辑  收藏  举报