区间
个人常使用开区间(-10001,10001)
可使更新区间时可直接使得l=mid,r=mid;
循环停止判断
l + 1e-8<r 因为是浮点数需要加上1e-8,进行判断.否则答案错误
更新区间条件
思想:因中间值可更新,可通过对中间值的操作进行区间更新判断。
如对中间值三次方,中间值的加法,中间是否等于数组中对应的数字等
因为需要寻找target的三次方,所以通过中间值的三次方来查找x所在区间,从而进行区间更新.
mid*mid*mid>=n
#include<iostream>
using namespace std;
double n;
int main()
{
cin>>n;
double l= -10001,r=10001;
while(l + 1e-8<r)
{
double mid=l + (r- l) / 2;
if(mid*mid*mid>=n) r=mid;
else l=mid;
}
printf("%.6f",r);
}