基础算法:浮点二分——数的二次方根
/*浮点数二分:求一个数的二次方根*/#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;
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
