洛谷 P1226 【模板】快速幂||取余运算 题解
Analysis
快速幂模板,注意在最后输出时也要取模。
快速幂模板
1 inline ll ksm(ll x,ll y) 2 { 3 ll ans=1; 4 while(y>0) 5 { 6 if(y&1) 7 { 8 ans*=x; 9 ans%=k; 10 } 11 x*=x; 12 x%=k; 13 y>>=1; 14 } 15 return ans; 16 }
题解
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 typedef long long ll; 7 ll b,p,k,ans=1; 8 inline ll ksm(ll x,ll y) 9 { 10 while(y>0) 11 { 12 if(y&1) 13 { 14 ans*=x; 15 ans%=k; 16 } 17 x*=x; 18 x%=k; 19 y>>=1; 20 } 21 return ans; 22 } 23 int main() 24 { 25 scanf("%lld%lld%lld",&b,&p,&k); 26 printf("%lld^%lld mod %lld=",b,p,k); 27 ans=ksm(b,p); 28 printf("%lld",ans%k); 29 return 0; 30 }
请各位大佬斧正(反正我不认识斧正是什么意思)