一定得注意取值,當指數小於0,指數大於0,指數等於0時
如果指數和底數都是0時怎麼辦,還有浮點數的比較
#include #define esp 0.0000001
typedef enum boolbool;
bool value_num = false; //定義乙個全域性變數用來區分正確時返回的0和錯誤時返回的0
double powwithunsignedexp(double base, unsigned int exp);
bool equal(double one, double two);
double mypow (double base, int exp)
if (exp == 0)
return 1.0;
else if (exp < 0)
unsignedexp = (unsigned int)(-exp); //指數為負數時取絕對值
else
unsignedexp = (unsigned int)(exp);
result = powwithunsignedexp (base,unsignedexp);
if(exp < 0)
return (1/result);
else
return result;
}double powwithunsignedexp(double base, unsigned int exp) //用遞迴求冪,因為指數為大於0的指數,有奇數和偶數兩種情況
bool equal(double one, double two) //比較浮點數的大小
求乙個數的整數次方
題目 求乙個數的整數次方。題目是如此的簡單,但是需要考慮的還是比較多 1.指數為負,底數是零 2.指數底數都是零 3.返回正常零和返回錯誤零的區別 4.底數為正,指數為負如何處理 5.考慮底數次方大的話,想效率問題 6.處理double數值相等問題 以下直接是 詳細考慮除底數指數全零的以上所有情況!...
劍指offer08 實現某個數的n次方
題目 實現double power double base,int exponent 求base的exponent次平方,不得使用庫,同時不用考慮大數問題 不難主要是別忘了考慮邊界情況 package 劍指offer 實現double power double base,int exponent 求...
劍指Offer之判斷乙個數是否是回文數
整體思路就是取數字中最高位和最低位來比較,然後再分別向下取數迴圈此操作,如果其中有乙個不相等,返回false 否則返回true,下面以乙個數字來具體說明 4 5 6 5 4 1.首先先取數字中的最高位,其他位都為0的數help,help是這樣算的 int help 1 while n hlep 10...