55.【大学递归】求解平方根
55.【大学递归】求解平方根
小明上来大学,学习了用求解平方根的迭代公式。

其中:p 为 x 的近似平方根,e 是结果允许的误差。
输入:x, e
输出:p 保留小数点后 8 位。
| 测试输入 | 期待的输出 | 时间限制 | 内存限制 | 额外进程 | |
|---|---|---|---|---|---|
| 测试用例 1 | 以文本方式显示
|
以文本方式显示
|
1秒 | 64M | 0 |
| 测试用例 2 | 以文本方式显示
|
以文本方式显示
|
1秒 | 64M | 0 |
【分析】:
我真的是会谢,给的公式都是存在问题的

【代码】
#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 + 0.5;
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;
}

浙公网安备 33010602011771号