顾名思义,快速幂就是快速算底数的n次幂。其时间复杂度为 O(log₂N), 与朴素的O(N)相比效率有了极大的提高。
实现如下:
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(fastPower(5,2,10000007));
}
public static long fastPower(long a,long b,long mod) {
long ans=1;
while(b!=0) {
if((b&1)==1)
ans=ans*a%mod;
a=a*a;
b=b>>1;
}
return ans;
}