二分幂

 

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!=0?temp*Bin:1);//仔细体会这一步
        
        temp*=temp;//你懂的

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

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Tron_future/article/details/49901949
文章标签: C++
个人分类: 代码
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

二分幂

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭