二分的正确写法
整数二分
int l = 0, r = n;
while (l <= r) {
int nMid = (l + r) >> 1;
if (Judge(x, y, nMid)) {
l = nMid + 1;
}
else {
r = nMid - 1;
}
}
//注意当l为0时, 输出0, 而非-1
cout << l - 1 << endl;
实数二分
double l = 0, r = n;
//精度具体看题意
while (r - l > 0.0001) {
double nMid = (l + r) / 2.0;
if (Judge(x, y, nMid)) {
l = nMid;
}
else {
r = nMid;
}
}
cout << l << endl;
本文详细介绍了二分法的两种实现方式:整数二分和实数二分,并提供了具体的代码实现,帮助读者理解如何在实际编程中应用二分法。
1715

被折叠的 条评论
为什么被折叠?



