次方的快速算法?
1 回答
HUH函数
TA贡献1836条经验 获得超4个赞
整数次方可以用快速幂算法
譬如计算x^y,可以先算出x^(y/2)
然后再自乘一次,如果y是奇数,那就再额外乘一次y
对于x^(y/2),我们仍用上述方法递归计算,可以得到logy复杂度的算法
以下是循环写法,效率比递归写法略高一些
int pow(int x,int y)
{
int ans=1;
while(y)
{
if(y)ans*=x;
x*=x;
y>>=1;
}
return ans;
}
添加回答
举报
0/150
提交
取消