关闭

(Leetcode)371. Sum of Two Integers

标签: leetcode
46人阅读 评论(0) 收藏 举报
分类:

371. Sum of Two Integers
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

思路

题目要求不用+法进行加法运算,所以考虑用&和^运算来代替。
“^” XOR operation, 获得(a+b)的“和”in each bit
“&” AND operation, 获得(a+b)的“进位”in each bit.
因为进位是进到下一位的,所以要把(a&b)<<1

递归调用一下下

Code

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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:13325次
    • 积分:460
    • 等级:
    • 排名:千里之外
    • 原创:33篇
    • 转载:3篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论