C C 練習題 數值的整數次方

2021-09-25 21:15:09 字數 1567 閱讀 7993

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

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

題目難度是不很大,主要考察應聘者的思維是否全面,對問題完整性的分析。

討論演算法的完整性

功能上,指數exponent可分大於0、等於0、小於0三中情況進行討論,進行不同的策略。

考慮底數base為0的特殊情況,進行分析

當base為0,exponent小於0時,出現異常,需要對這種情況處理

#include #include using namespace std;

//問題:求數值的整數次方

/*討論演算法的完整性

1.功能上,指數exponent可分大於0、等於0、小於0三中情況進行討論,進行不同的策略。

2.考慮底數base為0的特殊情況,進行分析

3.當base為0,exponent小於0時,出現異常,需要對這種情況處理

*/double power(double base, int exponent);

double epower(double base, int exponent);

double epower2(double base, int exponent);

bool double_is_zero(double base);

bool g_invalidinput = false; //輸入異常標記

//測試的時候沒有檢查 g_invalidinput 變數喔

void test01()

int main(int argc, char const *ar**)

//功能:數值的整數次方

//輸入:base底數, exponent 指數

//返回:結果

double power(double base, int exponent)

return result; //其他情況(包括0的0次方),直接返回1就好了

} 分情況討論

if (exponent < 0)

else

return result;

}//功能:常規情況下求整數次方

//輸入:base底數(不等於0), exponent指數(大於等於0)

//返回:結果

double epower(double base, int exponent)

return result;

}//基於公式,遞迴實現 求數值的整數次方(效率更高)

//輸入:base底數, exponent 指數

//返回:結果

double epower2(double base, int exponent)

//功能:判斷浮點數值為0

數值整數次方

題目 實現函式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,如果...