劍指Offer 面試題16 數值的整數次方

2021-10-22 11:44:16 字數 1636 閱讀 2175

/**

* 面試題16:數值的整數次方

* 給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。

* 保證base和exponent不同時為0

* @author

* @create 2021-03-17 14:51

*/public

class

solution16

public

static

double

power

(double base,

int exponent)

if(exponent <0)

//return powerwithexponent(base,exponent);

// return powerwithexponentrecursion(base,exponent);

return

powerwithexponentnonrecursion

(base,exponent);}

/** * 常規求解,時間複雜度為o(n)

* @param base

* @param exponent

* @return

*/public

static

double

powerwithexponent

(double base,

int exponent)

if(exponent ==1)

double result =

1.0;

for(

int i =

0; i< exponent; i++

)return result;

}/**

* 遞迴法(快速冪)

* 時間複雜度:o(logn),因為n的二進位制位個數為logn

* 空間複雜度:o(1)

* @param base

* @param exponent

* @return

*/public

static

double

powerwithexponentrecursion

(double base,

int exponent)

if(exponent ==1)

double result =

powerwithexponentrecursion

(base, exponent >>1)

; result *= result;

//exponent為偶數時,result為base的平方,4次方,8次方,16次方if(

(exponent &1)

==1)return result;

}public

static

double

powerwithexponentnonrecursion

(double base,

int exponent)

x *= x;

//x的2次方、4次方、8次方。。。

exponent >>=1;

}return ret;

}}

劍指offer 面試題16

include 思路 遍歷鍊錶過程中,將各個指標入棧,再出棧進行反轉 listnode reverselist listnode phead pnode pnodestack.top listnode pfront pnode pnodestack.pop while pnodestack.empt...

劍指Offer 面試題16 數值的整數次方

給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。保證base和exponent不同時為0 題目比較簡單,但是需要全面考慮問題,主要是對冪次進行分類,1.exponent 0 這種情況只需要進行常規操作,無需特殊處理2.exponent 0...

劍指offer 面試題16 數值的整數次方

問題 給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。輸入 double型浮點數base,int型整數exponent。輸出 double型結果。思路 本題思路不難,但是容易忘記處理各種邊界值,異常值。當exponent為正數時,base...