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

快速幂理解

时间:2017-04-16 10:52:28      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:com   快速   进制   code   log   png   .com   long   typedef   

 

当求解a的b次方时,如果b很大,那么时间复杂度O(n)就会很高,用快速幂可以降低复杂度。

现在假如要求a的11次方,11用二进制就可以表示成1011,那么就可以得到如下的公式:

技术分享

代码的实现很简单,如下:

typedef long long LL;  
LL fun(LL x,LL n,)  
{  
    LL res=1;  
    while(n>0)  
    {  
        if(n & 1)  
            res=(res*x);  
        x=(x*x);  
        n >>= 1;  
    }  
    return res;  
}  

 

快速幂理解

标签:com   快速   进制   code   log   png   .com   long   typedef   

原文地址:http://www.cnblogs.com/zyb993963526/p/6718129.html

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