首页 > 代码库 > LeetCode Q371 Sum of Two Integers(Easy)
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)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。