开根号

#include <iostream>
#include <stdio.h>
using namespace std;

double myqrt(double x) {
	if (x < 0)
		return -1;
	constexpr auto eps = 1e-8;
	double low, up, mid, last;
	low = 0;
	up = ( x >= 1 ? x : 1);
	i0
	mid = (low + up) / 2;
	do {
		if (mid * mid > x)
			up = mid;
		else
			low = mid;

		last = mid;
		mid = (up + low) / 2;

	} while (abs(mid - last) > eps);
	return mid;
}

int main() {
	std::cout << myqrt(0.8) << std::endl;
	return 0;
}

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-17
  • 2021-12-10
  • 2021-05-22
  • 2022-12-23
猜你喜欢
  • 2021-11-11
  • 2021-07-20
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案