P1226 【模板】快速幂||取余运算
https://www.luogu.org/problemnew/show/P1226
模板题 直接上代码吧
#include<bits/stdc++.h> using namespace std; int main() { long long int c,b,p,k,base,ans=1; cin>>b>>p>>k; c=p,base=b; while(p>0) { if(p&1) { ans*=base; ans%=k; } base*=base; base%=k; p>>=1; } ans%=k; printf("%lld^%lld mod %lld=%lld",b,c,k,ans); }
最后结束循环之后一定要加上这句 ans%=k; 不然输入如果是 1 0 1时就会报错 算是一个坑点