整数的板子写过了,那就小小的记录一下二分对于浮点数的板子
浮点数二分其实跟整数二分差不多,仅仅区别于while里的判断,浮点数用左右端点的差值与精度进行判断,一般精度都取要求保留位数多两位,例如:要求保留4为,那么精度取1e-6.
本题ac代码如下:
#include <bits/stdc++.h>
using namespace std;
double x;
bool check(double k)
{
return (k * k * k) < x;//k即为二分结果,要求三次方根,即为k的三次方
}
int main()
{
cin >> x;
double l, r;
l = -10000;
r = 10000;
while (r - l > 1e-8)
{
double mid = (l + r) / 2;
if (check(mid)) l = mid;
else r = mid;
}
printf("%.6lf\n", l);
}