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

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)
数独第一课(1)_初一数学_数学_初中教育_教育专区。带你走进数独的小世界一.一起认识“数独” : 数独(すうどく,Sudoku)是一种运用纸、笔进行演算的逻辑游戏。...
第一讲 数独基本知识
第一讲 数独基本知识 教学目标:从最简单的数独基本概念入手,系统、全面地介绍数独的基本类 型、题型,并通过具体例题示范,全方位地介绍数独阶梯技巧和解题方法,让学...
标准数独汇总-1-4级
标准数独汇总-1-4级_二年级数学_数学_小学教育_教育专区。标准数独1-4年级难度系数 1 完成时间___分钟 1 2 4 7 7 2 9 难度系数 1 9 7 3 5 2 4 7...
一年级数独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_二年级数学_数学_小学教育_教育专区。用数独开启您的逻辑智慧难度系数 2 完成时间___分钟 1 8 9 6 5 2 4 3 7 3 7 4 9 8 1 6 5 ...
数独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答案-_学科竞赛_小学教育_教育专区 暂无评价|0人阅读|0次下载|举报文档对角线数独1答案-_学科竞赛_小学教育_教育专区。 ...
一级数独练习题
一级数独练习题_学科竞赛_小学教育_教育专区。练习练习脑子,不错 难度系数 1 完成时间___分钟 3 6 5 4 8 9 7 4 1 8 1 5 难度系数 1 2 4 3 7 1...
更多相关标签: