0x01 基本算法-位运算 a^b(快速幂)

a^b

http://www.nowcoder.com/questionTerminal/2ad9cdaab3ed4590beb66450792af16d

链接:https://ac.nowcoder.com/acm/contest/996/A

  题意:求图片说明% mod 。
  思路:图片说明 ,假设我们要求 图片说明 那么我们可以转换成, 也就是图片说明 我们可以发现当 b 的二进制位的某一位是 1 时,我们需要做一个累乘 ans 的操作,否则我们需要 a 的指数乘 2 操作。这样的操作就是快速幂。 假设我们现在右有

using namespace std;

typedef pair<int,int> P;
typedef long long ll;
const int Max_n=2e5+10;

int q_pow(int a,int b,int mod){
    ll ans=1,res=a%mod;
    while(b){
        if(b&1) ans=ans*res%mod;
        res=res*res%mod;
        b>>=1;
    }
    return ans%mod;
}

int main(){
    int a,b,mod;
    scanf("%d%d%d",&a,&b,&mod);
    printf("%d\n",q_pow(a,b,mod));
    return 0;
}
全部评论

相关推荐

在打卡的大老虎很想潜...:你在找实习,没啥实习经历,技术栈放前面,项目多就分两页写,太紧凑了,项目你最多写两个,讲清楚就行,项目背景。用到的技术栈、亮点、难点如何解决,人工智能进面太难了,需求少。你可以加最新大模型的东西
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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