关闭

二分幂

标签: C++
135人阅读 评论(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!=0?temp*Bin:1);//仔细体会这一步
        
        temp*=temp;//你懂的

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3917次
    • 积分:193
    • 等级:
    • 排名:千里之外
    • 原创:16篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条
    文章分类
    最新评论