首页 > 其他 > 详细

快速幂理解

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

 

当求解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;  
}  

 

快速幂理解

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!