zoukankan      html  css  js  c++  java
  • 数独

     1 #include <cstdio>
     2 #include <algorithm>
     3 #include <cstring>
     4 #include <iostream>
     5 using namespace std;
     6 
     7 int s[9][9];//数独
     8 
     9 bool ans(int x,int y, int z) //判断每一行、每一列、每一个3*3宫内是否符合
    10 {
    11     int a=x/3,b=y/3;
    12     for(int i=0;i<9;i++)  //行列
    13         if(s[i][y]==z||s[x][i]==z) return false;
    14     for(int i=0;i<3;i++)
    15         for(int j=0;j<3;j++)   //  3*3宫
    16         if(s[i+a*3][j+b*3]==z)
    17         return false;
    18     return true;
    19 }
    20 bool dfs(int cur)   // 深搜
    21 {
    22     if(cur==81)
    23         return true ;
    24     if(s[cur/9][cur%9])   // 当前点不为0
    25     {
    26         return dfs(cur+1);
    27     }
    28         for(int i=1;i<10;i++)  // 循环填数
    29         {
    30             if(ans(cur/9,cur%9,i))
    31             {
    32                 s[cur/9][cur%9]=i;
    33                 if(dfs(cur+1))
    34                 return true;
    35             }
    36         }
    37     
    38     s[cur/9][cur%9]=0;  //倒退回,恢复原状。
    39     return false;
    40 }
    41 int main()
    42 {
    43     int n;
    44     scanf("%d",&n);
    45     while(n--)
    46     {
    47         
    48         for(int i=0;i<9;i++)
    49             for(int j=0;j<9;j++)
    50             scanf("%d",&s[i][j]);
    51         dfs(0);
    52         for(int i=0;i<9;i++)
    53         {
    54             for(int j=0;j<8;j++)
    55                 printf("%d ",s[i][j]);
    56             printf("%d
    ",s[i][8]);
    57         }
    58     }
    59     return 0;
    60 }
    61                 
    View Code

    9*9数格 既81,深搜,如当前位置数不为0,则继续深搜,否则判断从1-9数是否符合当前位置,如符合继续深搜,否则,对当前位置恢复原状,退回上一层。

  • 相关阅读:
    节点
    class 属性、div 属性
    认识 DOM
    配置 jQuery、初识 jQuery
    JavaScript 【在HTML中使用 JavaScript】
    我的第一个 jQuery 脚本
    JavaScript 【函数属性】
    【Class 继承】super 关键字
    Object.assign( )
    【华为云技术分享】云图说|人工智能新科技—文字识别服务
  • 原文地址:https://www.cnblogs.com/WDKER/p/5381712.html
Copyright © 2011-2022 走看看