Uva 340 猜数字的游戏

来源:互联网 发布:天猫跟淘宝哪个质量好 编辑:程序博客网 时间:2024/06/05 20:40

水题,思路也很好想,就是用三个数组,一个储存正确答案,一个每次读入猜测数组时临时储存并刷新正确答案,一个储存猜测答案,不断比对先找A后找B一步步做出来的。

下附代码:

#include <iostream>#include <cstdio>#include <map>#include <algorithm>using namespace std;int data[1005], num, part[1005], base[1005];bool Find(int mid){    for(int i = 0; i < num; i++)    {        if(part[i] == mid)        {            part[i] = 0;            return true;        }    }    return false;}int main(){    int n = 0;    while(scanf("%d", &num)&& num)    {        for(int i = 0; i < num; i++)        {            int mid;            scanf("%d", &mid);            data[i] = mid;        }        int mid, A, B, pos = 0;        printf("Game %d:\n", ++n);        while(scanf("%d", &mid))        {            if(mid == 0)            {                for(int i = 1; i < num; i++)                {                    scanf("%d", &mid);                }                break;            }            A = 0, B = 0;            base[0] = mid;            for(int i = 1; i < num; i++)            {                scanf("%d", &base[i]);            }            for(int i = 0; i < num; i++)            {                part[i] = data[i];            }            for(int i = 0; i < num; i++)            {                if(part[i] == base[i])                {                    A++;                    part[i] = 0;                    base[i] = 0;                }            }            for(int i = 0; i < num; i++)            {                if(base[i] != 0)                {                    if(Find(base[i]))                    {                        B++;                        base[i] = 0;                    }                }            }            printf("    (%d,%d)\n", A, B);        }    }    return 0;}

原创粉丝点击