24h購物| | PChome| 登入
2009-04-04 12:36:11| 人氣3,032| 回應0 | 上一篇 | 下一篇

數獨(SUDOKU)

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

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

#include<stdio.h>
#include<stdlib.h>
main()
{
 int math[10][10],a,b,c;
 while(scanf("%d",&math[0][0])==1)
  {
  
   for(a=0;a<9;a++)
    {
     for(b=0;b<9;b++)
      {
       if(a==0&&b==0) continue;
       scanf("%d",&math[a][b]);
      }
    }
   int flag=0,sum,sum1,sum2;
   for(a=0;a<9;a++)           /*檢查行跟列*/
    {
      sum=math[a][0]+math[a][1]+math[a][2]+math[a][3]+math[a][4]+math[a][5]+math[a][6]+math[a][7]+math[a][8];     /*行*/
      sum1=math[0][a]+math[1][a]+math[2][a]+math[3][a]+math[4][a]+math[5][a]+math[6][a]+math[7][a]+math[8][a];   /*列*/
      if(sum!=45||sum1!=45)
       {
        flag=1;
        break;
       }
    }
   if(flag==1)
    {printf("no\n\n");continue;}
    for(a=0;a<=6;a=a+3)     /*檢查3*3格子*/
     {
      sum=math[a][0]+math[a][1]+math[a][2]+math[a+1][0]+math[a+1][1]+math[a+1][2]+math[a+2][0]+math[a+2][1]+math[a+2][2];
      sum1=math[a][3]+math[a][4]+math[a][5]+math[a+1][3]+math[a+1][4]+math[a+1][5]+math[a+2][3]+math[a+2][4]+math[a+2][5];
      sum2=math[a][6]+math[a][7]+math[a][8]+math[a+1][6]+math[a+1][7]+math[a+1][8]+math[a+2][6]+math[a+2][7]+math[a+2][8];
       if(sum!=45||sum1!=45||sum2!=45)
        {flag=1;break;}
     }
    if(flag==0)
     printf("yes\n");
    else
     printf("no\n");
    printf("\n"); 
  }
 return 0;
}

台長: 來源不明
人氣(3,032) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: ZeroJudge 基礎+原創題庫 |
此分類下一篇:大數運算
此分類上一篇:矩陣的翻轉

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文