Leetcode 數值的整數次方

2021-10-23 00:17:44 字數 1079 閱讀 2183

實現函式double power(double base, int exponent),求base的exponent次方。不得使用庫函式,同時不需要考慮大數問題。

示例 1:

輸入: 2.00000, 10

輸出: 1024.00000

示例 2:

輸入: 2.10000, 3

輸出: 9.26100

示例 3:

輸入: 2.00000, -2

輸出: 0.25000

解釋: 2-2 = 1/22 = 1/4 = 0.25

說明:-100.0 < x < 100.0

n 是 32 位有符號整數,其數值範圍是 [−231, 231 − 1] 。

來自:leetcode題解

因為在說之前看過leetcode的題解了,所以就敲了一遍熟悉一下

需要注意的是當指數為最小負數時,如果取正會發生溢位,所以我就將指數的長度擴大,從int的4個位元組擴大到long的8個位元組

大致思路:

首先得先分析情況,根據題目,底數可正可負可0,指數也一樣;

我們得對指數為負數的情況進行判斷,如果指數為負數,底數就得取倒數,然後指數取正,同時也得考慮底數為0的情況;

在前面對一些條件進行處理後,便可以進行快速冪了,以x= 2, n= 10為例;

result首先置為1;

第一次迴圈,指數10為偶數,所以x= x* x= 2* 2= 4, n= 10/ 2= 5,也就是x^10= (x^2)^5;

第二次迴圈,指數5為奇數,所以result= result* x= result* 4,n= n/ 5= 2,也就是轉換成了x^10= x^2* (x^2)^4;

以此類推,直到指數為0.

(因為快速冪是將底數不斷的平方,所以得對指數為奇數的時候進行分離處理)

class solution 

// 快速冪計算

double result= 1;

while(nn> 0)

return result;

}};

數值整數次方

題目 實現函式double power double base,int exponent 求base的exponent次方。不得使用庫函式,同時不需要考慮 大數問題。includebool equal double num1,double num2 double powerwithunsignede...

數值整數次方

題目 實現函式double power double base,int exponent 求base的exponent次方。不得使用庫函式,同時不需要考慮 大數問題。includebool equal double num1,double num2 double powerwithunsignede...

數值的整數次方

題目 實現函式double power double base,int exponent 求base的exponent次方。不得使用庫函式,同時不需要考慮大樹問題。這道題目有以下幾點需要注意 0的0次方是無意義的,非法輸入 0的負數次方相當於0作為除數,也是無意義的,非法輸入 base如果非0,如果...