交互题 : 1. Guess the Number(二分)

题目传送门

题意:给定1------1e6的范围的一个数,要你在规定次数内猜出该数。

思路:

AC代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
	int l=1,r=1e6;
	while(l!=r){
		int mid=(l+r+1)>>1;//这里要用(l+r+1) 因为是跟"<"和">="比较,如果l=mid ans=r=l+1 则会一直循环. 
		printf("%d\n",mid);
		fflush(stdout);
		char c[3];
		scanf("%s",c);
		if(strcmp(c,"<")) r=mid-1;
		else l=mid;
	}
	printf("! %d\n",l);
	fflush(stdout);
	return 0;
}