【算法】快速幂

2021/12/26 9:07:34

本文主要是介绍【算法】快速幂,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

a23=a16 * a^4 * a^2 * a^1

res=a^1

res*=a^2

res*=a^4

res*=a^16

...

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int main(){
    ll a,b,p,res=1;
    cin>>a>>b>>p;
    while(b){
        if(b&1)res=res*a%p;//当前位是1
        a=a*a%p;//使得a顺次变成a^1 a^2 a^4 a^8 ...
        b/=2;
	}
    cout<<res<<endl;
    return 0;
}


这篇关于【算法】快速幂的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程