程序员面试金典-面试题 16.26. 计算器
题目:
设计一个函数把两个数字相加。不得使用 + 或者其他算术运算符。
示例:
输入: a = 1, b = 1 输出: 2
提示:
a
,b
均可能是负数或 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; } }