关于Sum of Two Integers(LeetCode 371)边界情况的疑惑

ting说你跳 2017-10-10 08:43:36
Description
Calculate the sum of two integers a and b, but you are not allowed to use the operator + and -.

Example:
Given a = 1 and b = 2, return 3.


solution
    public static int getSum(int a, int b) {
if (b == 0) {
return a;
}
int sum, carry;
sum = a ^ b;
carry = (a & b) << 1;
return getSum(sum, carry);
}


以上代码有一点我不明白,应该如何准确地解释边界情况是b==0。
希望大神指教。
...全文
341 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ting说你跳 2017-10-14
  • 打赏
  • 举报
回复
很有道理,非常感谢解答我的问题!
引用 1 楼 FancyMouse 的回复:
b不会超过实际a+b的值。递归k次,b的末尾就有k个0,所以b必须在有限次递归变成0。
FancyMouse 2017-10-13
  • 打赏
  • 举报
回复
b不会超过实际a+b的值。递归k次,b的末尾就有k个0,所以b必须在有限次递归变成0。

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧