LeetCode Q371 Sum of Two Integers(Easy)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode Q371 Sum of Two Integers(Easy)相关的知识,希望对你有一定的参考价值。

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.

翻译:

给两个数a和b,不用加法和减法的情况下算出a+b。

分析:

  一看题就知道肯定是于位运算有关,很快想到异或,因为只有异或满足单一位的二进制运算(1^1=0,1^0=1,0^1=1,0^0=0)。

  但有一个问题,就是进位。先算出进位的值(就是在异或条件下,比正确答案小的值),然后再相加,直到没有进位。

 

 1 public class Solution 
 2 {
 3     public int GetSum(int a, int b) 
 4     {
 5         int result = a ^ b;
 6         int carry = (a & b) << 1;
 7         if (carry == 0) return result;
 8         return GetSum(result, carry);
 9     }
10 }

 

以上是关于LeetCode Q371 Sum of Two Integers(Easy)的主要内容,如果未能解决你的问题,请参考以下文章

#Leetcode# 599. Minimum Index Sum of Two Lists

Leetcode: Sum of Two Integers

[LeetCode] 599. Minimum Index Sum of Two Lists

LeetCode 371. Sum of Two Integers

Leetcode 371. Sum of Two Integers JAVA语言

[leetcode-599-Minimum Index Sum of Two Lists]