|
亲!马上注册或者登录会查看更多内容!
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
经典位操作,需要注意的地方是:
(1)入参的范围是10**9
(2)入参是int,是在移位时要强制转型成long long
- class Solution {
- public:
- typedef long long LL;
- LL add(LL a, LL b){
- while(a){
- LL c = (a & b) << 1;
- b = a ^ b;
- a = c;
- }
- return b;
- }
- long long aMultiplyb(int a,int b) {
- LL p = 0;
- for(int i = 0; i < 31; ++i){
- if((1 << i) & b) p = add(p, LL(a) << i);
- }
- return p;
- }
- };
复制代码
|
|