计算X的N次幂明显的算法是使用N-1次乘法自乘。使用递归算法比较好。如果N是偶数,X的N次幂可以写成两个的N/2次幂的乘积,如果N是基数,则可以写成两个的N/2次幂的乘积再乘以X.这样算法的时间复杂度将变成logN.具体算法如下。
long pow(long x,unsigned n)
{if(n==0)
return 1;
else if(n==1)
return x;
else
{
if(n%2)//奇数
return pow(x*x,n/2)*x;
else
return pow(x*x,n/2);
}
}