当前位置:网站首页>【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);
}
};
边栏推荐
猜你喜欢
随机推荐
XAML WPF项目groupBox控件
指针和解引用
吴恩达机器学习课后习题——kmeans
小贝拉机器人是朋友_普渡科技召开新品发布会,新一代送餐机器人“贝拉”温暖登场...
开发工具:第五章:使用idea生成实体类
基于BiGRU和GAN的数据生成方法
OpenCV安装、QT、VS配置项目设置
表达式;运算符,算子;取余计算;运算符优先顺序
SQL窗口函数
08 Spark cluster construction
hcip第九天
M1芯片电脑安装cerebro
QPalette palette, frame color fill
成为优秀架构师必备技能:怎样才能画出让所有人赞不绝口的系统架构图?秘诀是什么?快来打开这篇文章看看吧!...
助推科技强国高质量发展《科创超级训练营》系列活动正式拉开帷幕
QT_事件类
SQL的索引详细介绍
基于ORB-SLAM2的改进代码
My new book has sold 10,000 copies!
C语言理论--笔试面试基础稳固