371. Sum of Two Integers

题目分析

题目链接,登录 LeetCode 后可用
这道题目思路比较简单,计算两个数的和但是不能用 +-。我想到的思路是计算机组成原理课上讲到的加法器的实现原理。基本的思路是用异或运算计算出不带进位的和,然后用与运算右移运算计算出进位,然后将二者相加,注意这又是一个加法运算,用递归的编程形式可以很好的处理这种情况。

代码

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

你可能感兴趣的:(371. Sum of Two Integers)