(Leetcode)371. Sum of Two Integers

原创 2016年08月28日 21:27:47

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);
    }
}
版权声明:本文为博主原创文章,转载请附上原文链接。

[leetcode] 371. Sum of Two Integers 解题报告

题目链接: https://leetcode.com/problems/sum-of-two-integers/ Calculate the sum of two integers a and b...
  • qq508618087
  • qq508618087
  • 2016年06月30日 13:23
  • 7961

LeetCode - 371. Sum of Two Integers

在不准使用+和-的情况下实现两个整数的加法,那么肯定要用到位运算了。我们考虑位运算加法的四种情况: 0 + 0 = 0 1 + 0 = 1 0 + 1 = 0 1 + 1 = 1(with c...
  • shenzhu0127
  • shenzhu0127
  • 2016年07月02日 11:22
  • 2017

LeetCode 第 371 题 (Sum of Two Integers)

LeetCode 第 371 题 (Sum of Two Integers) Calculate the sum of two integers a and b, but you are not ...
  • liyuanbhu
  • liyuanbhu
  • 2016年07月01日 19:56
  • 4099

Leetcode 371. Sum of Two Integers 位运算实现加法 解题报告

1 解题思想这道题本身来说很简单,就是实现加法,但是不允许用内置的加减来实现,那么这个就应该怎么实现呢?和题目一样,我用的是一个位运算,分为两个步骤: 1、输入 a,b 2、按照位把ab相加,不考...
  • MebiuW
  • MebiuW
  • 2016年06月30日 11:17
  • 5375

371. Sum of Two Integers [easy] (Python)

题目链接https://leetcode.com/problems/sum-of-two-integers/题目原文 Calculate the sum of two integers a and...
  • coder_orz
  • coder_orz
  • 2016年07月26日 12:08
  • 3411

【leetcode】371. Sum of Two Integers【E】

Calculate the sum of two integers a and b, but you are not allowed to use the operator + and -. ...
  • sscssz
  • sscssz
  • 2016年07月05日 14:08
  • 787

[leetcode] Sum of Two Integers--用位运算实现加法运算

问题:Calculate the sum of two integers a and b, but you are not allowed to use the operator + and -.Ex...
  • Pwiling
  • Pwiling
  • 2016年07月06日 21:13
  • 5971

[leetcode-371]Sum of Two Integers(java)

思路:模拟硬件加法器的实现,两个bit位相加,当前位结果为:a^b^c(c为上位的输入) 进位:(c&(a^b))^(a^b),至于原因,请参考一下全加器public class Solution ...
  • zdavb
  • zdavb
  • 2016年07月01日 16:39
  • 879

LeetCode-two sum:python解答数组问题

问题描述:给定一个数组和整型数字,找出数组中两个数加和为该整数的两个数的下标...
  • Winterto1990
  • Winterto1990
  • 2016年04月12日 21:11
  • 1185

[Leetcode]371. Sum of Two Integers

Calculate the sum of two integers a and b, but you are not allowed to use the operator + and -. E...
  • sunhero2010
  • sunhero2010
  • 2016年07月01日 16:05
  • 129
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:(Leetcode)371. Sum of Two Integers
举报原因:
原因补充:

(最多只允许输入30个字)