首先,我們分析下可能出現的情況:指數可能為負值,我們先求指數的絕對值次方,然後求導。->求導,那就要考慮分母不為0的情況了。
bool g_invalidinput = false;
double power(double
base, int exponent)
unsigned int ab***ponent = (unsigned int)(exponent);
if (exponent < 0)
double result = powerwithunsignedexponent(base, ab***ponent);
if (exponent < 0)
return result;
}double powerwithunsignedexponent(double
base, unsigned ab***ponent)
return result;
}bool equal(double num1, double num2)
return
false;
}
第二種方法:
a^n
當n為偶數時,a^n=a^(n/2);
當n為奇數時,a^n=a^((n-1)/2)*a^((n-1)/2)*a;
double powerwithunsignedexponent(double
base, unsigned ab***ponent)
if (ab***ponent == 1)
double result = powerwithunsignedexponent(base, ab***ponent >> 1);
result *= result;
if (ab***ponent & 0x1)
return result;
}
劍指offer面試題11
面試題1 數值的整數的次方 題目 實現函式double power double base,int exponent 求base的 exponent次方。不得使用庫函式,同時不需要考慮大數問題。思路 首先應該明確指數的可能取值 正整數,0,負整數 另外還需要考慮底數是0的情形。對於負整指數,我們可以...
劍指Offer 面試題11 數值的整數次方
實現double power double base,int exponent 求base的exponent次方。不得使用庫函式,同時不需要考慮大數問題。分析 源 如下 includeusing std cout using std cin using std endl class throwerr...
劍指offer 面試題11 數值的整數次方
題目 給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方 class solution int powerresult double base,unsigned int exponent double result 1.0 for int i...