码迷,mamicode.com
首页 > 其他好文 > 详细

快速幂运算

时间:2015-06-10 19:14:55      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

快速幂运算顾名思义,就是快速算某个数的多少次幂。其时间复杂度为 O(log?N), 与朴素的O(N)相比效率有了极大的提高。

以下以求a的b次方来介绍
把b转换成二进制数。
该二进制数第i位的权为
技术分享
例如
技术分享
11的二进制是1011
11 = 2³×1 + 2²×0 + 2¹×1 + 2º×1
因此,我们将a¹¹转化为技术分享
 
代码如下
int pow3(int a,int b)
{ 
    intr=1,base=a; 
    while(b!=0) 
    { 
        if(b&1) 
            r*=base; 
        base*=base; 
        b>>=1; 
    } 
  return r; 
}

 

快速幂运算

标签:

原文地址:http://www.cnblogs.com/scarecrow-blog/p/4566752.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!