思想
快速幂的思想其实很简单,数学告诉我们,\(2^7\) 可以写成:
$ 24·22·2^1 $
观察上式,不难发现,任何数的任意次方可以拆分成若干个二的不同次方次相乘。
据此我们对原指数进行二进制拆分,根据其每一位上 \(1\) 的有无,来判断是否作幂。
实现
代码(不保证正确性):
int fast_mi(int a,int n){
int ans=0;
while(n){
if(n&1){
ans+=a;
}
a*=a;
n>>=1;
}
return ans;
}
标签:24,int,算法,ans,次方,快速
From: https://www.cnblogs.com/mornhus-xsylf-123/p/17232571.html