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

二分求幂(快速求幂,二进制求幂)

时间:2017-04-13 20:11:51      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:amp   logs   ges   ret   ima   img   quick   alt   div   

二分求幂,

非递归求法(二进制求法):

比如

技术分享  

2^5就是5个2相乘,按照5的二进制求

3^10就是8个3相乘,再2个3相乘。

处理幂的二进制,具体实现代码如下:

long long quickmulti(long long a,long long b)
{
    long long res=1;
    while(b)
    {
        if(b&1)    //如果最后一位为1,则res*=a;
            res*=a;
        a*=a;      //a*=a
        b>>=1;     //b%=2
    }
    return res;
}

  

二分求幂(快速求幂,二进制求幂)

标签:amp   logs   ges   ret   ima   img   quick   alt   div   

原文地址:http://www.cnblogs.com/f-society/p/5726470.html

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