因为痛,所以叫青春

我有一个梦想:穷屌丝变身富屌丝
uva 340 Master-Mind Hints

这道题真的是挺水的,很简单啦,不过既然写了,我还是贴上我的代码吧

题目大意是这样的

Master-Mind是一种2个人的游戏。 其实就是学生常玩的几A几B的游戏(规则或许有些许不同)。 其中一个人担任出题者,他选一串1到9数字 当作密码(可以重复)。 另一个人为解题者,他要去猜密码为何。 解题者每次猜测后,出题者以某种格式回答他这次猜的结果。 在游戏开始之前,双方先协议密码的长度,假设是n。 在出题者设定密码(s1,s2,...sn) 后,由解题者来猜(g1,g2,...gn)。 如 果同样位置gi=si, 那解题者得到一个A。 如果gi=sj,但i不等于j,那解题者得到一个B。 请注意:不管是得A或得B,每个 gi最多只能对应到一个sj,而且得A比得B优先。 举例说明:密码为1 2 3 4,若猜题者猜1 1 5 6,那出题者应该回答1A0B,而不是0A1B。 如果某个猜测得到 nA0B,那就代表猜题者完全猜中密码了。

下面是代码写的可能复杂些,我没优化,今天做得太多了,累的要命,就不再优化了

View Code
 1 #include<stdio.h>
 2 #include<string.h>
 3 int main()
 4 {
 5     int x, y, n, i, k = 1, code[1020], _code[1020], j, code1[1020];
 6     while(scanf("%d",&n) && n)
 7     {
 8         for(i = 0;i < n; i++)
 9         {
10             scanf("%d",&code[i]);
11             code1[i] = code[i];
12         }
13         int flag = 0;
14         for(i = 0;i < n; i++)
15         {
16             scanf("%d",&_code[i]);
17             if(_code[i] != 0)
18                 flag = 1;
19         }
20         printf("Game %d:\n",k++);
21         while(flag)
22         {
23             x = 0;
24             y = 0;
25             for(i = 0;i < n; i++)
26                 if(code[i] == _code[i])
27                 {
28                     x++;
29                     _code[i] = code[i] = 0;
30                 }
31             for(i = 0;i < n; i++)
32             {
33                 for(j = 0;j < n; j++)
34                 {
35                     if((code[i] == _code[j]) && _code[j])
36                     {
37                         _code[j] = code[i] = 0;
38                         y++;
39                         break;
40                     }
41                 }
42             }
43             for(i = 0;i < n;i++)
44                 code[i] = code1[i];
45             printf("    (%d,%d)\n",x,y);
46             flag = 0;
47             for(i = 0;i < n; i++)
48             {
49                 scanf("%d",&_code[i]);
50                 if(_code[i] != 0)
51                 flag = 1;
52             }
53         }
54     }
55     return 0;
56 }

posted on 2012-06-02 20:20  Nice!  阅读(1988)  评论(0编辑  收藏  举报