您的位置:首页 > 其它

快速幂

2015-03-01 23:46 183 查看
以下以求a的b次方来介绍

把b转换成二进制数。该二进制数第i位的权为

例如,11的二进制是1011,11 = 2³×1 + 2²×0 + 2¹×1 + 2º×1

因此,我们将a¹¹转化为算

代码实现:

int pow(int a,int b)

{

int result=1;

int base=a;

while(b!=0)

{

if(b&1)

{

result=result*base;

}

base=base*base;

b=b>>1;

}

return result;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: