当前位置: 代码迷 >> C语言 >> 求救
  详细解决方案

求救

热度:166   发布时间:2008-01-03 22:15:14.0
求救
怎么开立方?
----------------解决方案--------------------------------------------------------
pow
----------------解决方案--------------------------------------------------------
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);
}
----------------解决方案--------------------------------------------------------
pow(n,1.0/3);
----------------解决方案--------------------------------------------------------
发的短信都不回!哎
----------------解决方案--------------------------------------------------------
#include <math.h>
pow(x,y)
x的y次方!
----------------解决方案--------------------------------------------------------
  相关解决方案