#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]=
{ {5,0,7,2,4,0,6,0,8},
{0,0,0,6,0,5,0,0,0},
{2,0,3,0,0,0,1,0,5},
{0,4,0,5,0,7,0,8,0},
{1,0,0,0,0,0,0,0,6},
{8,3,0,4,0,6,0,2,0},
{7,0,6,0,0,0,8,0,3},
{0,0,0,9,0,8,0,0,0},
{9,0,8,0,6,3,2,0,4}};
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)
{
static int count=1;
cout<<"第"<<count<<"个解是:"<<endl;
count++;
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;
}
没有合适的资源?快使用搜索试试~ 我知道了~
C++数独/计算出所有可能的结果
共10个文件
pdb:2个
dsp:1个
cpp:1个
5星 · 超过95%的资源 需积分: 10 35 下载量 43 浏览量
2009-04-08
10:19:40
上传
评论
收藏 386KB RAR 举报
温馨提示
简单的数独,C++语言。能计算出所有结果!
资源推荐
资源详情
资源评论
收起资源包目录
c++数独.rar (10个子文件)
c++数独
shudu.ncb 41KB
shudu.plg 1KB
shudu.cpp 2KB
Debug
vc60.pdb 132KB
shudu.exe 552KB
shudu.obj 306KB
shudu.pdb 1.08MB
shudu.dsp 3KB
shudu.opt 48KB
shudu.dsw 518B
共 10 条
- 1
资源评论
- cwwg1232013-11-08不错,能用的
xiaocaifly1987
- 粉丝: 1
- 资源: 14
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功