给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算
- a,b为32为整数
- 可以使用位运算符
class Solution {
public:
/**
* @param a: An integer
* @param b: An integer
* @return: The sum of a and b
*/
int aplusb(int a, int b) {
// write your code here
if(b==0)
return a;
int sum = a^b;
int i=(a&b)<<1;
return aplusb(sum,i);
}
};
sum为和,i为进位
链接;https://blog.youkuaiyun.com/ListentTome/article/details/79744852
本文介绍了一种特殊的算法,该算法利用位运算符来计算两个32位整数的和,避免了传统的加法运算。通过递归地执行按位异或和按位与操作,然后将按位与的结果左移一位来模拟进位,最终得到两数之和。
4万+

被折叠的 条评论
为什么被折叠?



