码迷,mamicode.com
首页 > 其他好文 > 详细

数独~~~~~~只记得当下的眼疼

时间:2016-03-31 21:50:43      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:

只记得挡下的强烈( ~不潮不花钱~) , 那个啥 言归正传 , 今晚真是 做的眼疼 , 只记得当下的强烈 , 扣扣扣扣 , 左左左左 偏左就用左手 . 好不容易做出来  结果被  卡死到  输出格式上了 ......

这个题是需要再做一下的

技术分享

技术分享

Hey greedy,don’t fret

What you see is what you get

You name it,I have it

 请你不要到处扣扣

最早的时候  我一直用的都是  两个for循环 遍历 寻找  结果就是  不停错误  ,  ......................先付上修改之后的代码 , 一会在用原来的思想强行实现一波.

 1 #include<stdio.h>
 2 int a[9][9];
 3 int flag;
 4 bool check(int y,int x,int mark)
 5 {
 6     for(int i=0;i<9;i++)
 7     {
 8         if(a[y][i]==mark)
 9             return false;
10         if(a[i][x]==mark)
11             return false;
12     }
13     for(int i=(y/3)*3;i<(y/3)*3+3;i++)
14         for(int j=(x/3)*3;j<(x/3)*3+3;j++)
15     {
16         if(a[i][j]==mark)
17             return false;
18     }
19     return true;
20 }
21 int n;
22 void DFS()
23 {
24     if(n==81)
25     {
26         return;
27     }
28     for(int i=n,mark=0;i<=81;i++)
29     {
30 
31         if(i==81)
32         {
33             n=81;
34             return;
35         }
36         int y=i/9,x=i%9;
37         if(a[y][x]==0)
38         {
39             for(int i=1;i<=9;i++)
40             {
41                 if(check(y,x,i))
42                 {
43                     a[y][x]=i;
44                     i++;
45                     DFS();
46                     i--;
47                     if(n==81)
48                     {
49                         i=81;
50                         break;
51                     }
52                     a[y][x]=0;
53                 }
54                 if(i==9)
55                 {
56                     mark=1;
57                 }
58             }
59             if(mark)
60                 break;
61         }
62     }
63 }
64 int main()
65 {
66     int t;
67     scanf("%d",&t);
68     while(t--)
69     {
70         for(int i=0;i<9;i++)
71            for(int j=0;j<9;j++)
72               scanf("%d",&a[i][j]);
73         n=0;
74         DFS();
75         for(int i=0;i<9;i++)
76         {
77             for(int j=0;j<9;j++)
78                 printf("%d ",a[i][j]);
79             printf("\n");
80         }
81     }
82     return 0;
83 }

 

数独~~~~~~只记得当下的眼疼

标签:

原文地址:http://www.cnblogs.com/A-FM/p/5342844.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!