当前位置:网站首页>【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);
}
};
边栏推荐
- 08 Spark cluster construction
- 【Error】Uncaught (in promise) TypeError: Cannot read properties of undefined (reading ‘concat’)
- 食品安全 | 新鲜食品vs速食食品,哪一种是你的菜?
- opencv real-time face detection
- 千万级乘客排队系统重构&压测方案总结篇
- Isometric graph neural networks shine in drug discovery
- EpiSci|片上系统的深度强化学习:神话与现实
- GTK修改pixmap像素,提取pixmap像素RGB值
- GRUB2的零日漏洞补丁现已推出
- Basic image processing in opencv
猜你喜欢
随机推荐
08 Spark cluster construction
极化微波成像概述2
SRM供应商管理系统如何助力口腔护理企业实现采购战略的转型升级
块级元素、行内元素、行内块元素
Topology零部件拆解3D可视化解决方案
ROS2系列知识(5):【参数】如何管理?
How can become a good architect necessary skills: painting for all the people praise the system architecture diagram?What is the secret?Quick to open this article and have a look!.
千万级乘客排队系统重构&压测方案总结篇
QPalette palette, frame color fill
opencv实时人脸检测
想做期货,农产品期货怎么炒?波动大么
ROS2系列知识(7):用rqt_console查看日志logs
云商店携手快报税,解锁财务服务新体验!
关于MySql中explain结果filtered的理解
广汽埃安“弹匣电池”,四大核心技术,出行安全保障
MySql 怎么查出符合条件的最新的数据行?
tooltip 控件
存储日报-数据湖架构权威指南(使用 Iceberg 和 MinIO)
06 redis cluster structures
指针和解引用









