当前位置:网站首页>剑指 Offer 65. 不用加减乘除做加法

剑指 Offer 65. 不用加减乘除做加法

2022-07-04 22:20:00 LuZhouShiLi

剑指 Offer 65. 不用加减乘除做加法

题目

 写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。

思路

参考K神的题解:https://leetcode.cn/problems/bu-yong-jia-jian-cheng-chu-zuo-jia-fa-lcof/solution/mian-shi-ti-65-bu-yong-jia-jian-cheng-chu-zuo-ji-7/
  • 无进位和与异或运算规律相同
  • 进位和与运算规律相同(需要左移一位)

代码

class Solution {
    
    public int add(int a, int b) {
    
        while(b != 0)
        {
    
            int c = (a & b) << 1;// c = 进位
            a ^= b;// 非进位和 异或运算
            b = c;// b = 进位
        }

        return a;
    }
}
原网站

版权声明
本文为[LuZhouShiLi]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_44653420/article/details/125601248