这道题我如果
#include <iostream>
using namespace std;
int main() {
int l = 1, r = 1e9;
while (l <= r) {
int mid = (l + r) / 2, op;
cout << mid << flush; //刷新缓冲区
cin >> op;
if (op == 0) {
return 0;
}
if (op == -1) {
l = mid + 1;
} else {
r = mid - 1;
}
}
return 0;
}
就会 T
然而如果
#include <iostream>
using namespace std;
int main() {
int l = 1, r = 1e9;
while (l <= r) {
int mid = (l + r) / 2, op;
cout << mid << endl; //刷新缓冲区
cin >> op;
if (op == 0) {
return 0;
}
if (op == -1) {
l = mid + 1;
} else {
r = mid - 1;
}
}
return 0;
}
就 AC 了。
为什么呢?