仔细阅读一本通提高篇,会发现它挺齐全的,综合了别的书籍的一些好的例题,还是很走心了。
习题配套,非常方便 配套习题:https://loj.ac/article/588 (不过网站容易炸飞 -_-? ,我们太强了?)
因为已经是自己的总结了 ∴会更切合考试——实用性强,方便复习。 (关闭两边的广告也OK)
欢迎━(*`∀´*)ノ亻! 因篇幅可能有点长,一点一点看也OK!质量有保证的哦!
【 % 】
不取模 版:
LL fast_cal (LL a,LL b,LL mod){
LL ans=1;//赋值为1
while (b){
if (b&1) ans*=a;
a*=a;b>>=1;
}
return ans;
}
全代码:
#include
#include
#include
#include
#define LL long long
using namespace std;
inline LL ll_wread(){
char c=getchar ();LL flag=1,wans=0;
while (c<'0'||c>'9'){if (c=='-') flag=-1;c=getchar ();}
while (c>='0'&&c<='9'){wans=wans*10+c-'0';c=getchar ();}
return wans*=flag;
}
LL fast_cal (LL a,LL b,LL mod){
LL ans=1;//赋值为1
while (b){
if (b&1) ans=(ans%mod*a%mod)%mod;
a=(a%mod*a%mod)%mod;b>>=1;
}
return ans%mod;//返回值时一定要取模
// 特殊数据: 1 0 1
// 即 1^0 % 1 Ans=0
}
int main (){
LL a=ll_wread() ,b=ll_wread(),mod=ll_wread();
printf("%lld^%lld mod %lld=%lld\n",a,b,mod,fast_cal(a,b,mod));
return 0;
}
代码提交:https://www.luogu.org/problemnew/show/P1226
第1章 习题解析(全)(点击)
待更新...