24h購物| | PChome| 登入
2009-02-26 21:36:02| 人氣1,250| 回應1 | 上一篇 | 下一篇

2007 NPSC E. 猜數字

推薦 0 收藏 0 轉貼0 訂閱站台

這一題就是輸入時,出現奇怪的錯誤!!
首先1.先把所有可能建出來
   2.判斷每筆幾A幾B

/*************************************************************/

#include<stdio.h>
#include<stdlib.h>
int number[5042][5];
main()
{
 int a,b,c,d,n=0;
 for(a=0;a<=9;a++)
  for(b=0;b<=9;b++)
   {
    if(a==b) continue;
    for(c=0;c<=9;c++)
    {
     if(a==c||b==c) continue;
     for(d=0;d<=9;d++)
      {
       if(d==a||d==b||d==c) continue;
       number[n][0]=a;
       number[n][1]=b;
       number[n][2]=c;
       number[n][3]=d;
       n++;
      }
     }
   } 
  int k,m;
  char x[10],y[10];
  int math[11][5];
  int ab[11][3];
  while(scanf("%d",&k)==1)  
   {
    while(k--)
     {
      int ans=0;
      scanf("%d",&m);
      for(a=0;a<m;a++)
       {
       scanf("%s %s",x,y);/*卡在輸入的問題 讓我很頭痛*/
        math[a][0]=x[0]-48;
        math[a][1]=x[1]-48;
        math[a][2]=x[2]-48;
        math[a][3]=x[3]-48;
        ab[a][0]=y[0]-48;
        ab[a][1]=y[2]-48;
       }
      for(a=0;a<5040;a++)
       {
     
        int A=0,B=0,flag=0;
        for(b=0;b<m&&flag==0;b++)
         {
          int temp[5];
          A=0;B=0;
          temp[0]=math[b][0];
          temp[1]=math[b][1];
          temp[2]=math[b][2];
          temp[3]=math[b][3];
          for(c=0;c<4;c++)
           {
            for(d=0;d<4;d++)
             {
              if(number[a][c]==temp[d]&&c==d)
               {A++;temp[d]=-1;break;}
              if(number[a][c]==temp[d]&&c!=d)  
               {B++;temp[d]=-1;break;}  
             }
           }
           if(A!=ab[b][0]||B!=ab[b][1])
            flag=1;
         }
         if(flag==0)
           ans++;
       }  
       if(ans!=0)
       printf("%d\n",ans);
       else
       printf("You Cheat!\n");
     }
   }
 return 0;
}

台長: 來源不明
人氣(1,250) | 回應(1)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: NPSC |
此分類下一篇:2005 NPSC C. 怪物辨識
此分類上一篇:2005 NPSC E. 聯立多元一次方程式

0.0
scanf("%s %s",x,y);/*卡在輸入的問題 讓我很頭痛*/ 你是不是...少了& ,&x,&y
2009-12-17 19:55:48
是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文