55.【大学递归】求解平方根

55.【大学递归】求解平方根

小明上来大学,学习了用求解平方根的迭代公式。

其中:p 为 x 的近似平方根,e 是结果允许的误差。

输入:x, e

输出:p  保留小数点后 8 位。

  测试输入 期待的输出 时间限制 内存限制 额外进程
测试用例 1 以文本方式显示
  1. 4↵
  2. 1e-8↵
以文本方式显示
  1. 2.00000000↵
1秒 64M 0
测试用例 2 以文本方式显示
  1. 0.25↵
  2. 1e-8↵
以文本方式显示
  1. 0.50000000↵
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;
}

 

posted @ 2022-12-23 11:05  我千五可以  阅读(542)  评论(0)    收藏  举报