371. Sum of Two Integers, 不用加减乘除运算符计算两数之和

原创 2017年09月05日 16:19:33

rt.

思考:在计算5 + 9时,首先不进位的话 5 + 9 = 45 + 9的进位为1,然后和就是1 * 10 + 4 = 14。同理放到二进制中也可以采用这样的方法。

代码如下;

class Solution {
public:
    int getSum(int a, int b) {
        return bitAdd(a, b);
    }
    
    int bitAdd(int a, int b) {  
        int nCarry = a & b;      // 进位  
        int nSumNoCarry = a ^ b; // 非进位  
        if (nCarry != 0)  
            return BitAdd(nSumNoCarry, nCarry << 1);  
        else  
            return nSumNoCarry;  
    }  
};

若要计算a = b * 3,可将a = b << 1 + b,然后运用上述bitAdd()函数即可。


版权声明:本文为博主原创文章,未经博主允许不得转载。

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
  • 3432

【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
  • 791

[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
  • 7983

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
  • 4110

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
  • 2029

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

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

lintcode 两数之和(Two Sum )(Java)

题目 给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。 你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 1 到...
  • C_calary
  • C_calary
  • 2017年07月13日 14:16
  • 1007

不用加减乘除运算符计算两数之和

原文由MoreWindows撰写(http://blog.csdn.net/morewindows/article/details/8710737),这里添加另外一种实现方法。 再来熟悉一下习题,这...
  • terminatorqi
  • terminatorqi
  • 2014年02月21日 16:03
  • 591

不用+、-、×、÷对两个数求和

题目:不用+、-、×、÷对两个整数求和。思路: 主要分成3步: 第一步不考虑进位,对每一位相加。0加0与1加1的结果都0,0加1与1加0的结果都是1。我们可以注意到,这和异或的结果是一样的。对异或...
  • zhang_shuai12
  • zhang_shuai12
  • 2015年06月11日 21:32
  • 815

371. Sum of Two Integers

Calculate the sum of two integers a and b, but you are not allowed to use the operator + and -. Exa...
  • wjxgxg
  • wjxgxg
  • 2016年06月30日 14:30
  • 180
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:371. Sum of Two Integers, 不用加减乘除运算符计算两数之和
举报原因:
原因补充:

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