計算一個數字的立方根方法:使用對數和指數組合的方法表示立方根。loga(b)表示 以a爲底,b的對數,a(m)表示a的m次方。我們知道a(loga(b))等於b,並且nloga(b)等於log以a爲底b的n次方。結合這兩個性質,我們可以得到任何一個數的任何一個次冪的值,自然也能求得立方根,只需的log前面的係數換成1/3即可。漢字有點囉嗦,直接看代碼,有效代碼只有一行。
代碼:
#include <math.h>
float getCubeRoot(float fInput)
{
/*在這裏實現功能*/
if(fInput < 0)
return 0;
float value = exp(log(fInput)/3);
return value;
}
還有一種更簡單的方法,利用c標準庫函數 pow函數,可以直接得到一個數的任何次冪;
代碼:
double resValue = pow((double)8,double(1/3));
注意pow函數的第一個參數是浮點類型的,第二個參數可以是整形,也可以是浮點型,由於1/3整形是0,所以也要轉成浮點型。