C 劍指offer 數值的整數次方

2021-10-23 08:02:04 字數 1123 閱讀 2874

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

保證base和exponent不同時為0

解法一:使用庫函式

使用pow()函式可直接求得答案,自己編寫完整程式時應注意要包含#include

**:

class

solution

};

解法二:暴力迭代這裡需要注意的點就是要考慮指數為負數的情況。時間複雜度為o(n)。

**:

class

solution

};

解法三:遞迴求解為了方便討論,假設指數exponent是正數。那麼遞迴式如下:

1、如果exponent是偶數,power(base, exponent) = power(base, exponent / 2) ×power(base, exponent / 2)

如果exponent是奇數,power(base, exponent) = base *

2、power(base, exponent / 2) ×power(base, exponent / 2)

對於負指數exponent的情況,取其絕對值先計算。將最後結果取倒數即可。

**:

class

solution

};

解法四:快速冪演算法沒寫過快速冪,今天完整的寫一下。

快速冪原理:

以下以求a的b次方來介紹

把b轉換成二進位制數。

該二進位制數第i位的權為 2^i-1

例如11的二進位制是1011

因此,我們將a¹¹轉化為算

**:

class

solution

return isnegative?

1/x:x;}}

;

解法四:遞迴版本的快速冪演算法

class

solution

};

劍指offer 數值的整數次方

1 題目描述 給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。2 思路 需要考慮到的情況 1 指數為負數的時候,可以先對指數求絕對值,算出次方之後的結果再取倒數。2 當底數是0,指數是負數的時候,可以將無效變數設定為true,並返回0。3...

劍指offer 數值的整數次方

給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。將指數大於0,小於0,等於0 底數不為0 的情況分開。其實指數為0的情況不必單獨拎出來 不進入if直接返回result為1.0 真正需要考慮的是,底數為0而指數為負的情況,數學上沒有意義。書...

劍指offer 數值的整數次方

給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。1.最直觀的方法,遞迴求解a b a a b 1 當然也可以用迴圈實現。要注意特殊情況,指數為0時乘方結果都是1 指數為負數時的計算,可以先轉化為正數再求倒數,但是底數為0時不能求導。2.效...