当前位置:首页 >> 其它课程 >>

sudoku1


#include <iostream>
#include <vector>
using namespace std;

vector <vector <int> > get();
void process(vector <vector <int>

>,int,int);
void display(vector <vector <int> >);

vector <int> v(vector <vector <int> >,int,int);

void main()
{
int a[9][9]=
{{0,0,0,0,0,1,0,0,0},
{0,6,0,0,0,4,9,0,0},
{0,0,0,3,0,0,0,8,0},
{0,0,0,0,9,0,0,3,0},
{0,4,0,0,6,0,7,0,5},
{0,0,2,7,0,0,1,0,0},
{0,0,1,8,0,0,4,0,0},
{5,0,7,0,0,2,0,0,0},
{0,9,0,0,0,0,0,0,2}};

vector <vector <int> > num;

for (int i=0;i<9;i++)
{
vector <int> temp(a[i],a[i]+9);
num.push_back(temp);
}

process(num,0,0);
}

vector <vector <int> > get()
{
vector <vector <int> > temp;

for (int i=0;i<9;i++)
{
vector <int> temp1;
temp1.clear();
for (int j=0;j<9;j++)
{
int temp2;
cin>>temp2;
temp1.push_back(temp2);
}
temp.push_back(temp1);
}

return temp;
}

void process(vector <vector <int> > set,int x,int y)
{
if (x==9)
{
cout<<endl;
display(set);
cout<<endl;
}
else if (set[x][y])
{
if (y==8)
{
y=0;
x++;
}
else
{
y++;
}
process(set,x,y);
}
else
{
vector <int> temp=v(set,x,y);

for (int i=0;i<temp.size();i++)
{
set[x][y]=temp[i];

int m=x,n=y;
if (n==8)
{
n=0;
m++;
}
else
{
n++;
}
process(set,m,n);
}
}
}

void display(vector <vector <int> > num)
{
for (int i=0;i<9;i++)
{
for (int j=0;j<9;j++)
{
cout<<num[i][j]<<" ";
if (j%3==2)
cout<<"\t";
}
cout<<endl;
if (i%3==2)
cout<<endl;
}
}

vector <int> v(vector <vector <int> >set,int x,int y)
{
int num[9]={1,2,3,4,5,6,7,8,9},i,j;
vector <int> temp(num,num+9);

for (i=0;i<9;i++)
{
if (set[x][i])
temp[set[x][i]-1]=0;
if (set[i][y])
temp[set[i][y]-1]=0;
}

for (i=x/3*3;i<x/3*3+3;i++)
for (j=y/3*3;j<y/3*3+3;j++)
if (set[i][j])
temp[set[i][j]-1]=0;

for (i=0;i<temp.size();i++)
{
if (!temp[i])
{
temp.erase(temp.begin()+i);
i--;
}
}

return temp;
}

相关文章:
数独集锦1(附答案)
1. 标准数独:将 1 至 9 的数字填入空格内, 并使每个数字在每行、每列、每个 3×3 正方形的宫内均不重复。 A.心形数独 答案: B.传说中最难的标准数独 ...
杀手数独1答案
杀手数独1答案_游戏_生活休闲。杀手数独解题规则:从 1 至 9 中选数填入空格,使每个数字在每一行、每一列和每一个标有粗线的宫中只 能出现一次。虚线框出的...
标准数独汇总-1-4级
标准数独汇总-1-4级_二年级数学_数学_小学教育_教育专区。标准数独1-4年级难度系数 1 完成时间___分钟 1 2 4 7 7 2 9 难度系数 1 9 7 3 5 2 4 7...
第一讲 数独基本知识
标准数独的规则一般都只有三点: 1、数独中每行内的数字为 1-9 且不重复; 2、数独中每列内的数独为 1-9 且不重复; 3、数独中每宫内的数字为 1-9 且不...
数独1-6
数独1-6_理学_高等教育_教育专区。5 8 6 3 7 2 3 3 6 8 4 1 7 5 9 9 6 2 1 6 3 1 3 4 5 1 6 8 6 7 2 4 6 1 7 3 5 9 1 2 ...
数独快速入门及数独技巧[1]
数独快速入门 上篇: 上篇:范例一: 范例一: 在左边第一个九宫格里,哪格可以放数字1, 先看到再第一列和第二列里已经有了数字1, 所以很明显了,除了棕色格子...
一年级数独100题
一年级数独100题_学科竞赛_小学教育_教育专区。一年级数独100题 第1题 1 6 3 5 5 3 1 4 3 6 3 2 3 2 1 2 6 6 4 4 5 2 3 第2题 2 1 2 ...
数独题目(1)
数独题目(1)_四年级数学_数学_小学教育_教育专区。数独练习 数独题学校:姓名:成绩: 一、在下面的四宫数独中,每行、每列、每宫都有 1、2、3、4 这四个...
数独 第1课时_图文
数独 第1课时_语文_小学教育_教育专区。数独教学 第一课时 备课 数独 社团备课年级 周次 二 1 任课教师 教学内容 张立超 数独初探 1.创设情境,引出数独这一...
二年级数独比赛1
二年级数独比赛1_其它课程_小学教育_教育专区。温州市南浦小学第二届数学节二年级数独比赛 班级 姓名 温州市南浦小学第二届数学节二年级数独比赛 班级 姓名 ...
更多相关标签:
sudoku1.1.8 | sudoku 1.1.5汉化 | sudoku | sudoku 游戏 | web sudoku | valid sudoku | microsoft sudoku | sudoku solver |