整數次冪的遞迴求解
阿新 • • 發佈:2019-02-14
整數次冪一般解法
時間複雜度
double pow(x,n)
{
res=x;
while(n--)
res*=x;
return res;
}
遞迴法
使用遞迴的方法可以將複雜度降低到
思路是比如一個數的8次冪,可以看成4次冪乘4次冪,進而分成2次冪乘2次冪,如果是奇數,在偶數結果的情況下額外乘上本身。
double myPow(double x, int n)
{
if (0 == n)
return 1.0;
if (1 == n)
return x;
if (2 == n)
return x*x;
double p = myPow(x, n / 2);
p *= p;
if (n % 2 == 0)//偶數
return p;
else//奇數
return p*x;
}