A题

题意:让你找出唯一的一个四位数,满足对话时的要求。

思路:因为是4位数,可以直接从1000-9999遍历一遍,判断是否有唯一的数能满足所有条件,如果不是唯一的或者没有满足条件的数就输出Not sure。特别丑的代码附上。。。

 

  1 #include<stdio.h>
  2 int a[10000],b[10000],c[10000];
  3 int main()
  4 {
  5     int n;
  6     while(~scanf("%d",&n))
  7     {
  8         if(n==0)break;
  9         int i,flag=0,ans,j,k;
 10         for(i=1;i<=n;i++)
 11             scanf("%d%d%d",a+i,b+i,c+i);
 12         for(i=1000;i<=9999;i++)
 13         {
 14             int a1,a2,a3,a4,i1,i2,i3,i4,bx=0,cx=0,flg=1;///ax代表a[i]的第x个数,ix代表i的第x个数
 15             for(j=1;j<=n;j++)
 16             {
 17                 bx=0;cx=0;
 18                 a1=a[j]/1000;
 19                 a2=(a[j]/100)%10;
 20                 a3=(a[j]/10)%10;
 21                 a4=a[j]%10;
 22                 i1=i/1000;
 23                 i2=(i/100)%10;
 24                 i3=(i/10)%10;
 25                 i4=i%10;
 26                 if(a1==i1)///先判断位置正确的
 27                     cx++;
 28                 if(a2==i2)
 29                     cx++;
 30                 if(a3==i3)
 31                     cx++;
 32                 if(a4==i4)
 33                     cx++;
 34                 if(a1==i1)///这里如果判和i中的一个数相等,就让i中的那个数为11,就不会再和下个数匹配了,防止出现当类似ai=1111,i=1234的时候a1,a2,a3,a4都和i1匹配成功的情况。
 35                     {
 36                         bx++;
 37                         i1=11;
 38                     }
 39                 else if(a1==i2)
 40                     {
 41                         bx++;
 42                         i2=11;
 43                     }
 44                 else if(a1==i3)
 45                     {
 46                         bx++;
 47                         i3=11;
 48                     }
 49                 else if(a1==i4)
 50                     {
 51                         bx++;
 52                         i4=11;
 53                     }
 54                 if(a2==i1)
 55                     {
 56                         bx++;
 57                         i1=11;
 58                     }
 59                 else if(a2==i2)
 60                     {
 61                         bx++;
 62                         i2=11;
 63                     }
 64                 else if(a2==i3)
 65                     {
 66                         bx++;
 67                         i3=11;
 68                     }
 69                 else if(a2==i4)
 70                     {
 71                         bx++;
 72                         i4=11;
 73                     }
 74                     if(a3==i1)
 75                     {
 76                         bx++;
 77                         i1=11;
 78                     }
 79                 else if(a3==i2)
 80                     {
 81                         bx++;
 82                         i2=11;
 83                     }
 84                 else if(a3==i3)
 85                     {
 86                         bx++;
 87                         i3=11;
 88                     }
 89                 else if(a3==i4)
 90                     {
 91                         bx++;
 92                         i4=11;
 93                     }
 94                     if(a4==i1)
 95                     {
 96                         bx++;
 97                         i1=11;
 98                     }
 99                 else if(a4==i2)
100                     {
101                         bx++;
102                         i2=11;
103                     }
104                 else if(a4==i3)
105                     {
106                         bx++;
107                         i3=11;
108                     }
109                 else if(a4==i4)
110                     {
111                         bx++;
112                         i4=11;
113                     }
114                     if(bx!=b[j]||cx!=c[j])
115                     {
116                         flg=0;
117                         break;
118                     }
119             }
120             if(flg)
121             {
122 
123                 ans=i;
124                 flag++;
125             }
126         }
127         if(flag==1)
128             printf("%d\n",ans);
129         else
130             printf("Not sure\n");
131     }
132 }
AC代码

相关文章: