优选算法_两数之和_位运算_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;
    }
};
相关推荐
2301_780789664 小时前
跨平台适配!SDK 游戏盾兼容全终端游戏场景
java·网络·ddos
第九序言T5 小时前
Python 数据处理进阶(十八)批量处理同结构文件:一个文件夹一次跑完
开发语言·python·自动化·pandas·数据处理
m0_639906945 小时前
Redis入门|五种数据结构、使用场景、持久化RDB&AOF
数据结构·数据库·redis
Sakura_j_h_5 小时前
EasyEDA PCB 快速设计Skills
c++·python·github
学长毕设5 小时前
基于springboot的食品仓库管理系统
java·spring boot·后端
ZhengEnCi6 小时前
Agent 架构怎么选:从单 Agent 到多 Agent 编排的选型决策指南
算法·架构
步行cgn6 小时前
FormHttpMessageConverter 详解:Spring MVC 中表单数据的读写转换器
java·spring·mvc
龙亘川6 小时前
构建城市公共安全数字底座:亘川智城智慧安防系统全维度解读
java·大数据·开发语言·人工智能·信息可视化
金銀銅鐵6 小时前
[Java] 用 CLI 展示 EnumMap 增删键值对时的内部变化
java·源码·ai编程
程序喵大人6 小时前
【C++入门】内存模型与资源管理 - 09 shared_ptr 和 weak_ptr 解决共享,也带来代价
开发语言·c++·资源管理·智能指针·内存模型