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

快速幂——一种对复杂题目的二进制处理-

时间:2015-03-17 17:17:38      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:

快速幂代码:

 

 

int QuickPower(int N,int time)//计算N^time
{
    
    int ReturnValue=1;//记录返回值
    int Pow=1;//记录当前已经计算出的多少次幂
    int temp=N;//记录N^i次幂
    
    while(time){
        
        int Bin=time%(2*Pow);//Bin记录二进制位
        
        if(Bin) {time-=Bin; Bin=1;}//这里是将time化成二进制的灵活用法
        
        ReturnValue*=(temp*Bin?temp*Bin:1);//仔细体会这一步
        
        temp*=temp;//你懂的

        Pow*=2;//你懂的
        
    }
    
    return ReturnValue;
    
}

 

快速幂——一种对复杂题目的二进制处理-

标签:

原文地址:http://www.cnblogs.com/yanglingwell/p/4344572.html

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