快速冪

定義:顧名思義,快速冪就是快速算底數的n次冪。其時間複雜度爲 O(log₂N), 與樸素的O(N)相比效率有了極大的提高。


原理:百度百科講的很好


代碼實現:

int power(int a,int b)//求a的b次方
{
    int r=1,base=a;
    while(b)
    {
        if(b&1) r*=base;
        base*=base;
        b>>=1;
    }
    return r;
}
/*
    補充知識點:
    1:&位運算符
        參加運算的兩個數制,按二進制進行 與運算。如果兩個相應的二進位數爲1,
        則該位的結果爲 1 否則爲 0 即:
      0 & 0 = 0;0 & 1 = 0;1 & 0 = 0;1& 1 = 1
      例如:3 & 8 並不等於8,而是↓
        3 = 00000011
        5 = 00000101 &
        00000001
    2:>>右移運算符
        a>>2表示將a的二進位整體右移2位。移到右端的低位被捨棄
*/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章