C/C++編程題之計算一個數字的立方根

計算一個數字的立方根方法:使用對數和指數組合的方法表示立方根。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,所以也要轉成浮點型。
發佈了34 篇原創文章 · 獲贊 18 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章