定義:顧名思義,快速冪就是快速算底數的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位。移到右端的低位被捨棄
*/