FROM
[url]http://post.baidu.com/f?kz=158458943[/url]
找他妈半天,也没看到有说,C,或C++的库函数里有此调用函数(光只有个开方).以为偷个懒,搜了半天,也没搜个有效解决这个破问题的办法~~
最后,实在一气之下,自己写个算了(用二分法,写的).学的少,不精.只能用这种土方法,希望我这达到抛砖引玉的效果~~
下是自个儿写的代码:
#include "math.h"
double fun(double x3,double x)
{
return(x*x*x-x3);
}
double cube(double x3,int jingdu)
//------调用函数 double cube(double x3,int jingdu)
{
//------x3为所开立方的数,jingdu即为需要精确到小数点后几位
int fuhao=1;
//------最大精度,必须小于双精度型-1 位~~
double p,t;
if(x3<0) {x3=-x3;fuhao=-1;}
double left=0 ,right=sqrt(x3),middle;
p=pow((double)0.1,jingdu+1);
middle=(left+right)/2;
if(fun(x3,right)==0) middle=right;
else
{
t=fun(x3,middle);
while(t!=0)
{
if(t<0) left=middle;
else
right=middle;
if(right-left<p)
break;
middle=(left+right)/2;
t=fun(x3,middle);
}
}
if(fuhao==-1) return(-middle);
else return(middle);
}