目的:快速幂的目的就是减少运算次数,快速算出X的N方。
推演:求解26
1.一般方法 利用for循环6次 2x2x2x2x2x2,算出结果64 ,运算了6次。
2.采用快速幂 (2x2)x(2x2) x(2x2) 一共运算了2次,比第一种方法少运算了4次。
快速幂的思想来自这种结合相乘,接下来看实例分析。
实例分析:求解215
基础知识:(Xa)x(Xb)=(Xa+b)
15的二进制:0 1 1 1 1 每次和1进行同或运算
if(n&1) //相同为1,相异为0
部分代码
int quickpow1(int x ,int n)
{
int ans=x;
int res=1;
while(n)
{
if(n&1)
{
ans=ans*res;
}
res=res*res;
n=n>>1;
}
return ans;
}