帮忙编个程序,c/c++的,很简单啊

用迭代法求a的立方根,求立方根的迭代公式为
Xi+1=2/3*Xi+a/(3*Xi*Xi)
假定X的初值为a,迭代到|Xi+1-Xi|<10的-5次方为止.
显示a=3,27的值,并通过调用pow(a,1.0/3)函数加以验证

#include <stdio.h>
#include <assert.h>
#include <math.h>

/* 计算a的三次方根,精度为precision.
*/
double san_ci_fang (double a, double precision) {
double x0 = 1;
double x1 = 1;
int k = 0;
while (k <= 100000) {
assert (x0 != 0);
x1 = 2*x0/3 + a/(3*x0*x0);
if (fabs(x1-x0) < precision)
return x1;
x0 = x1;
k++;
}
printf ("wrong, %.6lf\n", x1);
getch ();
exit(1);
return 0;
}

main () {
double a, b;
double precision = 10e-5;
scanf ("%lf", &a);
b = san_ci_fang (a, precision);
printf ("%.6lf^3 == %lf\n", b, pow(b, 3));
getch();
}
温馨提示:答案为网友推荐,仅供参考
相似回答