基础算法:浮点二分——数的二次方根

/*浮点数二分:求一个数的二次方根*/#include #include using namespace std;int main(){double x;c
/*浮点数二分:求一个数的二次方根*/#include 
#include using namespace std;int main()
{double x;cin >> x;double l = 0, r = x;//这是题目给的范围,具体问题具体分析while(r - l > 1e-8)//保留6位小数就-8,多2{double mid = max((l + r) / 2, 1.0);//eg:如果是求0.01的二次方根,范围应该是0~1,而不是(0+0.01)/2if(mid * mid >= x) r = mid;else l = mid;}//到最后结束,l和r在同一位置,输出l或者r相同printf("%lf\n", l);//printf默认保留6位return 0;
}