#include <iostream>
#include <algorithm>
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;
}*/
//第二种方法:开2的100次方,肯定能满足精度了
for(int i=0;i<100;i++)
{
double mid=(l+r)/2;
if(mid * mid>=x) r=mid;
else l=mid;
}
printf("%lf\n",l);
}
浮点二分查找
最新推荐文章于 2024-10-09 22:28:58 发布