數值的整數次方

2021-09-30 13:52:09 字數 847 閱讀 4024

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

解題思路

本題需要注意幾個點:

1. 如果指數exponent是0,那麼base不能為0,並且base(不為0)的exponent次方是1。

2. 如果指數exponent是負整數,那麼base不能為0,並且base(不為0)的exponent次方就等於1/base的|exponent|次方,從而可以將指數化為正整數處理。

3. 如果指數exponent是正整數,那麼有兩種方法可以求解。第一種方法是比較樸素的方法,基於

進行求解。這種方法在指數a較大的時候,會比較慢。

第二種方法是利用指數的二進位制表示式進行求解的。要求解x^a,我們首先將a轉化為二進位制形式,即

從而可得

定義乙個變數cur,初始化為x,之後每次令cur=cur*cur。當指數a不為0時,每次取a的最後一位bi,bi只能是0或者1,如果是0,則不用處理;如果是1,將當前的cur乘到結果上。

這種方法在a較大的時候會比第一種方法快。

**

class solution 

//樸素解法

/*for (int i = 0; i < exponent; i++)

result *= base;

*///將指數看作二進位制處理

double cur = base;

int num = 0;

while (exponent > 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,如果...