- 递增数列加法转乘法,除2转位移
- 结合二进制位运算用加法来实现两数相乘(与十进制乘法转加法类似)
class Solution {
public:
int multi(int a, int b)
{
int ret = 0;
(a & 1) && (ret += b);
a >>= 1;
b <<= 1;
a && (ret += multi(a, b));
return ret;
}
int Sum_Solution(int n) {
return multi(n, 1 + n) >> 1;
}
};
int main()
{
Solution s;
cout << s.Sum_Solution(5) << endl;
return 0;
}