@[lovesickman](/user/265978)
`l=mid+1;`吧?
by 天南星魔芋 @ 2021-05-06 15:32:18
楼上正解
by 子丑 @ 2021-05-06 15:52:31
@[天南星魔芋](/user/399239) 好像不对,我是用的y总的二分板子
by Retired @ 2021-05-06 15:52:52
@[子丑](/user/428154) 不改变l<r的条件下,怎么改,能贴下代码吗?ORZ
by Retired @ 2021-05-06 15:54:48
@[lovesickman](/user/265978) 哦,我SB了
by 天南星魔芋 @ 2021-05-06 15:56:42
```cpp
#include <cstdio>
#include <iostream>
using namespace std;
int main()
{int l=1,r=1000000000;
for(;l<r;)
{
int mid=l+r+1>>1;
cout<<mid<<endl;
int x;cin>>x;
if(x==0)return 0;
else if(x==-1)
l=mid;
else
r=mid-1;
}
cout<<l<<endl;
return 0;
}
```
by 天南星魔芋 @ 2021-05-06 15:56:52
@[lovesickman](/user/265978) 最后还要输一个 $l$。
by 天南星魔芋 @ 2021-05-06 15:57:24
@[天南星魔芋](/user/399239) 感谢大佬,是不是这个板子不太好啊
by Retired @ 2021-05-06 16:01:54
不是,是我太菜了
by 天南星魔芋 @ 2021-05-06 16:02:22
@[天南星魔芋](/user/399239) 懂了,如果待查询的是1,一直返回1,最后r=3,mid=2,r=mid-1,r=1,l=1,mid=1,查看直接退出,没有输出1。
by Retired @ 2021-05-06 16:16:46