浮点数二分搜索

146 阅读1分钟

浮点数二分不用处理边界问题 ,只要让target永远位于目标区域,一直利用二分缩小总范围即可

题目练习

求浮点数的平方根

C++ 代码实现

#include <iostream>

using namespace std;

int main()
{
  double x;
  cin >> x;

  double l = 0, r = x;
  while (r - l > 1e-8)
  {
    double mid = (l + r) / 2;
    if (mid * mid >= x) r = mid;
    else l = mid;
  }
  printf("%lf\n", l);

  return 0;
}