c++怎样求立方根?
计算一个数字的立方根方法:使用对数和指数组合的方法表示立方根。loga(b)表示 以a为底,b的对数,a(m)表示a的m次方。我们知道a(loga(b))等于b,并且nloga(b)等于log以a为底b的n次方。结合这两个性质,我们可以得到任何一个数的任何一个次幂的值,自然也能求得立方根,只需的log前面的系数换成1/3即可。汉字有点啰嗦,直接看代码,有效代码只有一行。
代码:
[cpp] view plain copy#include <math.h> float getCubeRoot(float fInput) { /*在这里实现功能*/ if(fInput < 0) return 0; float value = exp(log(fInput)/3); return value; }
还有一种更简单的方法,利用c标准库函数 pow函数,可以直接得到一个数的任何次幂;
代码:
cpp] view plain copy double resValue = pow((double)8,double(1/3));
注意:pow函数的第一个参数是浮点类型的,第二个参数可以是整形,也可以是浮点型,由于1/3整形是0,所以也要转成浮点型。