小明上来大学,学习了用求解平方根的迭代公式。
其中:p 为 x 的近似平方根,e 是结果允许的误差。
输入:x, e
输出:p 保留小数点后 8 位。
#include <stdio.h>
double Sqrt(double x, double p, double e);
double Abs(double n);
int main() {
double x, p, e;
scanf("%lf %lf", &x, &e);
p = x + 100;
printf("%.8f\n", Sqrt(x,p,e));
}
double Sqrt(double x, double p, double e)
{
if (Abs(p * p - x) < e) return p;
else return Sqrt(x, (p + x / p) * 0.5, e);
}
double Abs(double n)
{
return n >= 0 ? n : -n;
}