当前位置:网站首页>【Day_09 0427】 另类加法
【Day_09 0427】 另类加法
2022-08-01 17:40:00 【安河桥畔】
另类加法
题目来源
牛客网: 另类加法
题目描述
给定两个int A和B。编写一个函数返回A+B的值,但不得使用+或其他算数运算符。
示例
输入
1,2
返回
3
思路分析
- 根据位运算来计算得出结果
- 用异或可以表示两数相加没有进位的结果
- 两数向与并左移一位可以表示两数相加进位的情况
- 将异或的结果和相与的结果相加,继续重复上面的步骤进行相加
- 上面的操作可以进行递归调用,递归结束的条件是异或或者相与左移的结果为0
如图,以1+3为例
代码展示
class UnusualAdd {
public:
int addAB(int A, int B) {
if(A==0)
{
return B;
}
if(B==0)
{
return A;
}
//得到相加不进位的结果
int a=A^B;
//得到进位结果
int b=(A&B)<<1;
return addAB(a,b);
}
};
边栏推荐
猜你喜欢
随机推荐
棕榈油罐区数字化转型
中信证券是国内十大券商吗?怎么开户安全?
史上最全的Redis基础+进阶项目实战总结笔记
Topology Parts Disassembly 3D Visualization Solution
缓存一致性MESI与内存屏障
DBPack SQL Tracing 功能及数据加密功能详解
不需要写代码,快速批量修改文件夹中图片的格式
JumpServer堡垒机部署
TCP百万并发服务器优化调参
GTK修改pixmap像素,提取pixmap像素RGB值
AIOps智能运维的领跑者擎创科技正式入驻InfoQ 写作社区!
基于ORB-SLAM2的改进代码
块级元素、行内元素、行内块元素
快速抽取resnet_v2_152中间的特征层
今年最火爆的词:商业分析,看这一篇就够了!
opencv实时人脸检测
后台管理系统的权限思路
ROS2支持技术:DDS简述
存储日报-数据湖架构权威指南(使用 Iceberg 和 MinIO)
极化微波成像概述3