关闭

POJ 2328 Guessing Game(水~)

319人阅读 评论(0) 收藏 举报
分类:

Description
A说一个数,如果B说too low,就更新最小值,如果B说too high,就更新最大值,如果B说right on,则判断A猜的数是否在最大值和最小值之间,在就说明B可能是诚实的,不在说明B说谎了
Input
多组输入,每组输入包括多次询问,每次询问占两行,第一行为A说的数字,第二行为B的回答,包括(too low,too high,right on),当B说right on时本局游戏结束,即结束该组用例输入,以0结束全部输入
Output
对于每组用例,如果B说谎则输出Stan is dishonest,否则输出Stan may be honest
Sample Input
10
too high
3
too low
4
too high
2
right on
5
too low
7
too high
6
right on
0
Sample Output
Stan is dishonest
Stan may be honest
Solution
简单题,每次记录最大最小值,询问时根据B的回答与其比较即可
Code

#include<stdio.h>
#define max(x,y) x>y?x:y
#define min(x,y) x<y?x:y
int main()
{
    int max=11,min=0,ans,n;
    char s[10];
    while(scanf("%d",&n)&&n)
    {
        getchar();
        gets(s);
        if(s[0]=='t')
        {
            if(s[4]=='h')//如果B回答too high则更新最大值 
                max=min(max,n);
            else if(s[4]=='l')//如果B回答too low则更新最小值 
                min=max(min,n);
        }
        else if(s[0]=='r')//如果B说right on则看这个数是不是在最大值和最小值之间 
        {
            if(max>n&&min<n)
                printf("Stan may be honest\n");
            else
                printf("Stan is dishonest\n");
            min=0;
            max=11;
        }
    }
    return 0;
}
0
0
查看评论

POJ 2328 Guessing Game

Description Stan and Ollie are playing a guessing game. Stan thinks of a number between 1 and 10 and Ollie guesses what the number might be. Afte...
  • jtjy568805874
  • jtjy568805874
  • 2015-07-18 21:34
  • 205

poj 2328 Guessing Game

这道题很水,我开始想的太复杂,W
  • Scythe666
  • Scythe666
  • 2014-08-17 16:04
  • 715

zoj 1926 || poj 2328 Guessing Game(水~)

<br />就一个游戏,猜数字,你说一个数字,可能大了或者小了,最后再猜一次~控制下区间,如果在区间里那可能就是诚实的,不在的话肯定说谎了~水题,输入有点小问题。<br /> <br />#include <stdio.h> #includ...
  • zxy_snow
  • zxy_snow
  • 2010-11-26 23:35
  • 1885

Poj 2328 Guessing Game(猜数字游戏)

一、题目大意         两个小盆友玩猜数字游戏,一个小盆友心里想着1~10中的一个数字,另一个小盆友猜。如果猜的数字比实际的大,则告诉他“too high”,小则“too low”,正好则“right on”。直到猜对为止...
  • Insert_day
  • Insert_day
  • 2013-08-13 11:29
  • 655

POJ 2328 Guessing Game G++

#include #include #include //谢谢博友 using namespace std; int main() { int hash[11]; memset(hash,0,sizeof(hash)); vector jg; int flag=0; while(1...
  • woniupengpeng
  • woniupengpeng
  • 2017-03-24 21:15
  • 175

uva 1521 - GCD Guessing Game(贪心)

题目链接:uva 1521 - GCD Guessing Game 题目大意:给定一个数N,现在又一个数x,在1~N之间,现在每次可以猜一个数a,返回gcd(x,a),问说最少猜几次可以确定x。 解题思路:其实就将1~N里面的素数都要考虑一遍,因为有一个N的限制,所以每次选出来的素数的积不大于N...
  • u011328934
  • u011328934
  • 2014-08-02 23:00
  • 1316

POJ-2328

#include #include using namespace std; #define MAX 10 #define MIN 1 int main(int argc, char *argv[]){ bool isCheating=false; int regionLow=MIN-1; ...
  • eddy_liu
  • eddy_liu
  • 2015-10-31 16:06
  • 186

poj2328

#include #include using namespace std; int main(){ int n,a[500],ia=0; char c[500][10]; while(cin>>n&&n>=1&&n a[ia]=n; getchar...
  • u011731233
  • u011731233
  • 2014-04-02 18:21
  • 469

UVA 1521 - GCD Guessing Game(数论+贪心)

UVA 1521 - GCD Guessing Game 题目链接 题意:一个数字x在1-n之间,现在猜数字,每次猜一个数字a,告知gcd(x, a)的答案,问最坏情况下需要猜几次 思路:在素数上考虑,猜一组素数的乘积的数字,就可以把这些素数组成的数字都猜出来,答案就是组数,这样问...
  • u011217342
  • u011217342
  • 2014-09-11 13:24
  • 1174

UVA 题目1521 GCD Guessing Game(数论+贪心)

题意:一个数字x在1-n之间,现在猜数字,每次猜一个数字a,告知gcd(x, a)的答案,问最坏情况下需要猜几次 思路:在素数上考虑,猜一组素数的乘积的数字,就可以把这些素数组成的数字都猜出来,答案就是组数,这样问题就是如何分组使得组数最小,每次取最后一个,尽量和前面小的合并,就能使得组数最小...
  • yu_ch_sh
  • yu_ch_sh
  • 2015-08-14 12:17
  • 503
    个人资料
    • 访问:551461次
    • 积分:24526
    • 等级:
    • 排名:第317名
    • 原创:1943篇
    • 转载:0篇
    • 译文:0篇
    • 评论:68条
    最新评论