鍵盤輸入一個實數a,輸出它的立方根。請自行設計算法編寫程序,不允許調用pow函數。
假設a的立方根為x,則x3=a,問題轉化求一元高次方程x3-a=0的解
迭代法!!!!!!
#include
int main()
{
double a,n,m,x;
scanf("%lf",&a);
n=0;
m=a;
while(1) /*用n,m反復迭代,每次用n,m的平均值逼近*/
{
x=(n+m)/2;
if(a>0)
{
if(x*x*x<=a)
{
n=x;
}
else
m=x;
}
else
{
if(x*x*x<=a)
m=x;
else
n=x;
}
if((x*x*x-a<=0.000001)&&(x*x*x-a>=-0.000001))/*設置迭代的精度*/
break;
}
printf("%lf %lf",x,x*x*x);
}
求贊