知识点
位运算
思路
我们可以使用异或运算^以及进位来计算加法,乘法的本质就是多次加法,利用循环进行多次相加即可。
代码c++
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param n int整型
* @param a int整型
* @return int整型
*/
int add(int a, int b) {
while (b) {
int temp = a ^ b;//异或
b = (a & b) << 1;//相与求进位
a = temp;//更新a
}
return a;
}
int multiply(int n, int a) {
// write code here
int ans = 0;
for (int i = 1; i <= n; i++) {//多次加模拟乘
ans = add(ans, a);
}
return ans;
}
};