位运算相关

位运算基础知识



题目练手



题意及思路:


代码:

/*
2^1 = 2
2^2 = 4
2^4 = 16;
2^8 = 16*16
*/
#include <iostream>

using namespace std;

int main(){
    int a,b,p;
    cin >> a >> b >> p;
    int ans = 1%p;
    while(b){
        if(b&1) ans = ans*1ll*a % p;
        a = a*1ll*a %p;
        b >>= 1;
    }
    cout << ans << endl;
    
    return 0;
}



题意及思路:


代码:

/*
*/

#include <iostream>

using namespace std;

typedef unsigned long long ull;

int main(){
    ull a,b,p;
    cin >> a >> b >> p;
    ull ans = 0;
    while(b){
        if(b&1) ans = (ans+a) %p;
        a = a*2 %p;
        b >>= 1;
    }
    cout << ans << endl;
    return 0;
}




全部评论

相关推荐

不愿透露姓名的神秘牛友
05-01 13:13
ecece:这么明目张胆虚报就业率啊
点赞 评论 收藏
分享
双非阴暗爬行:我来看看笑死我了,这名字取得好想笑(没有不好的意思)
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务