优选算法_两数之和_位运算_C++

一.题目解析:

两=-整数的和不用加法

算法解析:

我们知道异或是一种不进位的加法

所以我们用这种特殊的加法来代替

我们找进位就很简单了,1和1进位,&的特性就是有0就是0,就可以找到哪里是进位,进一位应该是往前一位,所以我们左移(<<1)一位.

下面我们举个例子来展现所有过程:

13+23=36,即01101+10111=100100

二.代码编写

cpp 复制代码
class Solution {
public:
    int getSum(int a, int b) {
        while(b!=0)//找不到进位了,退出
        {
            int x=(a&b)<<1;//寻找进位
            a=a^b;//不进位的加法
            b=x;
        }
        return a;
    }
};
相关推荐
小明同学0112 小时前
C++后端项目:统一大模型接入 SDK(五)
服务器·c++·后端·计算机网络·语言模型
SimonKing12 小时前
IP定位库的完美替代品:ip2region,开源、免费!
java·后端·程序员
XiYang-DING12 小时前
【Spring】Lombok
java·后端·spring
凤山老林12 小时前
AI辅助编程:Copilot在Java开发中的最佳实践
java·人工智能·copilot
ew4521812 小时前
【Java】Apache POI 终极封装:支持多表格循环、图片插入、日期格式化的Word导出工具类(兼容POI3.17+)
java·word·apache
铁打的阿秀12 小时前
IDEA启动项目报错: 加载主类 com.seeburger.webedi.system.SystemApplication 时出现 LinkageError
java·ide·intellij-idea
Yeats_Liao12 小时前
物联网接入层技术剖析(一):从select到epoll
java·linux·后端·物联网·struts
夏日听雨眠12 小时前
数据结构(堆排序,基数排序)
数据结构·算法
什仙12 小时前
Ansys Maxwell 默认求解器选择
人工智能·笔记·算法·基础·ansys·maxwell
上弦月-编程12 小时前
Java类与对象:编程核心解密
java·开发语言·jvm