快速幂

来源:互联网 发布:excel筛选数据求和 编辑:程序博客网 时间:2024/06/07 05:56

简单说就是通过二进制来进行位运算,时间复杂度为O(log₂N),与朴素的O(N)相比效率有了极大的提高。

#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<cmath>#include<algorithm>using namespace std;int m,n;long long pw(long long a,long long b){    long long res=1;    while(b)    {        if(b&1)            res*=a;        a*=a;        b>>=1;    }    return res;}int main(){    while(scanf("%lld%lld",&m,&n))    {        printf("%lld\n",pw(m,n));    }    return 0;}