传送门:
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1926
题目大意:两人在猜数字,1~10,对于其中一个猜的数,Stan给出"too high", "too low", or "right on".如果Stan给出的是假的,那么输出Stan is dishonest否则输出Stan may be honest 每个例子均以right on结束
注意范围缩小时候输入的x应该在现在的范围内。否则区间就会扩大区间导致WA
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
char action[32];
int main()
{
int x;
int low=0,high=11;
bool ok=true;
while(scanf("%d",&x),x)
{
//getchar();
gets(action);
//cout<<action<<endl;
if(strcmp(action,"too high")==0 && x<high )
high=x;
else if(strcmp(action,"too low")==0 && x>low)
low=x;
else if(strcmp(action,"right on")==0)
{
if(x<high && x>low )
printf("Stan may be honest\n");
else
printf("Stan is dishonest\n");
low=0;
high=11;
}
}
}
本文解析了ZJU在线评测系统中编号为1926的问题,这是一个关于两人猜数字的游戏。文章详细介绍了通过判断提示来缩小正确答案范围的算法实现,并附带了完整的C++代码。
650

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



