pow(a,n)求a的n次方,但是该函数的时间复杂度是O(n)有时候不符合要求,因此要寻求更快的方式。
代码如下:
int pow(int a,int n)//返回值是a的n次方
{
int sum=1;
while(n!=0)
{
if(n&1)//如果n是奇数,即n的二进制最末位为1时
sum*=a;
a=a*a;
n=n>>1;//n的二进制右移一位,即n/2
}
return sum;
}
幂运算(与运算)
最新推荐文章于 2020-11-26 08:38:30 发布