键盘输入一个实数a,输出它的立方根。请自行设计算法编写程序,不允许调用pow函数。
假设a的立方根为x,则x3=a,问题转化求一元高次方程x3-a=0的解
#include<stdio.h>
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.00001)&&(x*x*x-a>=-0.00010))/*设置迭代的精度*/
break;
}
printf("%lf %lf",x,x*x*x);
}