首页 > 学院 > 开发设计 > 正文

Sum of Two Integers

2019-11-08 20:16:43
字体:
来源:转载
供稿:网友

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.

Python solution with no "+-*/%", completely bit manipulation guaranteedclass Solution(object):    def getSum(self, a, b):        """        :type a: int        :type b: int        :rtype: int        """        # 32 bits integer max        MAX = 0x7FFFFFFF        # 32 bits interger min        MIN = 0x80000000        # mask to get last 32 bits        mask = 0xFFFFFFFF        while b != 0:            # ^ get different bits and & gets double 1s, << moves carry            a, b = (a ^ b) & mask, ((a & b) << 1) & mask        # if a is negative, get a's 32 bits complement positive first        # then get 32-bit positive's Python complement negative        return a if a <= MAX else ~(a ^ mask)
class Solution {public:    int getSum(int a, int b) {        int sum=a;        while(b!=0){            sum = a^b;      //add different bits            b = (a&b)<<1;  //left same bits            a = sum;        }        return sum;    }};
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表