当前位置:   article > 正文

两数之和(不使用+、- 运算符)LeetCode_不用数学操作符实现两个数字相加

不用数学操作符实现两个数字相加

题目描述:

不使用运算符 + 和 - ,计算两整数 a 、b 之和。

示例 1:

  1. 输入: a = 1, b = 2
  2. 输出: 3

示例 2:

  1. 输入: a = -2, b = 3
  2. 输出: 1

解题思路:

  • a^b 是取得两数无进位相加,a & b 是取得两数相加后的进位。
  • 无进位相加与进位不断异或,直至进位为0

代码实现:

  1. class Solution {
  2. public int getSum(int a, int b) {
  3. int sum;
  4. while (true) {
  5. sum = a ^ b;
  6. int flag = (a & b) << 1;
  7. if (flag == 0) {
  8. break;
  9. }
  10. a = sum;
  11. b = flag;
  12. }
  13. return sum;
  14. }
  15. }

 

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号