快速幂

来源:互联网 发布:手绘头像软件 编辑:程序博客网 时间:2024/05/19 10:36

常规求幂

int pow1(inta,intb){    int r=1;    while(b--)        r*=a;    return r;} 

二分求幂(一般)

int pow2(inta,intb){int r=1,base=a;while(b!=0){    if(b%2)        r*=base;    base*=base;    b/=2;}return r*base;}

快速求幂(位操作)

intpow3(inta,intb){    int r=1,base=a;    while(b!=0)    {        if(b&1)            r*=base;        base*=base;        b>>=1;    }    return r;}
0 0