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

題目:給定一個 double 類型的浮點數 base 和 int 類型的整數 exponent。求 base 的 exponent 次方。

思路:對于數值的整數次方,一種簡單的思路就是設置一個result=1,將其乘以exponent次的base,這種思路簡單,但是復雜度較高,需要迭代exponent次運算。因此我們采用一種簡便的運算方法:
當n為偶數時 f(n) = f(n/2)^2
當n為奇數時 f(n) = f(n/2)^2 * base

Python代碼如下:

class Solution:
    def Power(self, base, exponent):
        if exponent == 1:
            return base
        elif exponent == 0:
            return 1
        elif exponent == -1:
            return 1.0/base
        
        result = self.Power(base, exponent>>1)
        result *= result
        if exponent % 2 == 1:
            result *= base
        return result
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容