浮点数二分不用处理边界问题 ,只要让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;
}