【题解】快速幂

a^b

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

快速幂运用分治思想

显然有:

每次根据该公式分治计算即可。

#include<iostream>
#include<cstdio>

using namespace std;

long long int b,p,k,ans=1;
int main()
{
    scanf("%lld%lld%lld",&b,&p,&k);
//  printf("%lld^%lld mod %lld=",b,p,k);
    if(k==1){
        puts("0");
        return 0;
    }
    while(p>0)
    {
        if(p&1) ans=ans*b%k;
        b=b*b%k;
        p>>=1;
    }
    printf("%lld\n",ans);
    return 0;
}
全部评论

相关推荐

12-14 11:43
黑龙江大学 Java
用微笑面对困难:确实比较烂,可以这么修改:加上大学的qs排名,然后大学简介要写一些,然后硕士大学加大加粗,科研经历第一句话都写上在复旦大学时,主要负责xxxx,简历左上角把学校logo写上,建议用复旦大学的简历模板
点赞 评论 收藏
分享
面了100年面试不知...:被割穿了才想起来捞人了
投递哔哩哔哩等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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