H - 二分+交互
链接
来源:Gym - 101375H
题目描述
给一个数,通过询问的方式猜它是多少,可以询问最多50次,每次询问会给出">","<“或”="的回答。
题目分析
要在比较少的次数找出这个数,所以用二分,且这个数最大为1e9,可以在50次内找出。记得"flush the output"。
代码
#include <cstdio>
using namespace std;
int main()
{
char ch;
int l=1,r=1e9;
while(1){
int mid=l+(r-l)/2;
printf("Q %d\n",mid);
fflush(stdout);//题目给出的
scanf("%c",&ch);
getchar();//防换行符影响
if(ch=='>') l=mid+1;
else if(ch=='<') r=mid-1;
else break;
}
}