我是靠谱客的博主 舒适电脑,这篇文章主要介绍LeetCode 剑指 Offer 65. 不用加减乘除做加法***具体思想:具体代码:,现在分享给大家,希望可以做个参考。

具体思想:

这里采用的思路注意两点:

1.其实相当于算完进位左移后,再次当作加数和非进位数相加,直到进位为0为止;

2.移位是注意一下,c++要求有符号负数不能随意左移,是未定义行为,因此要把该数转化为无符号数进行左移;

值得注意的是,符号在进位计算内仅作修饰,也就是正数和负数可以直接按照相同进行计算,不用太管符号位;

具体代码:

class Solution {
public:
int add(int a, int b) {
while(b!=0){
int c=(a&b);
a^=b;
b=unsigned(c)<<1;
}
return a;
}
};

最后

以上就是舒适电脑最近收集整理的关于LeetCode 剑指 Offer 65. 不用加减乘除做加法***具体思想:具体代码:的全部内容,更多相关LeetCode内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部