我自己也写了一个八皇后的程序
来源:互联网 发布:sql中in和exists 编辑:程序博客网 时间:2024/04/29 13:23
/*************************************************************************
> File Name: queen.cpp
> Author: WUBO
> Mail: 7329422@qq.com
> Created Time: Wed Mar 18 08:09:51 2015
************************************************************************/
#include<iostream>
using namespace std;
int data[8][8]={0};
void show()
{
for(int x=0;x<=7;x++)
{
for(int y=0;y<=7;y++)
{
if(data[x][y])
cout<<"1 ";
else
cout<<"0 ";
}
cout<<"\n";
}
}
//打印棋盘
bool check(int x,int y)
{
if(y==0)
return true;
else
{
for(int i=0;i<y;i++)
for(int j=0;j<=7;j++)
{
if(data[i][j])
{
if(j==x)
return false;
if(x>j&&(y-i)==(x-j))
return false;
if(x<j&&(y-i)==(j-x))
return false;
}
}
}
return true;
}
//判断放下的棋子是否成功
int queen(int x,int y )
{
static int num=0;
static int line[8];//储存哪一行的queen 放在哪一列
static int t;
int z;
for(z=x;z<=7;z++)
{
data[y][z]=1;
if(y==0)
{
line[y]=z;
queen(0,y+1);
}
else if(check(z,y))
{
if(y==7)
{
show();
cout<<++num<<endl;
data[y][z]=0;
line[y]=z;
}
else
{
line[y]=z;
queen(0,y+1);
}
}
else
{
data[y][z]=0;
}
}
if(z==8)
{
y=y-1;
if(y==-1)
exit(0);
data[y][7]=0;
t=line[y];
data[y][t]=0;
x=t+1;
queen(x,y);
}
}
//递归函数
int main()
{
queen(0,0);
return 0;
}
> File Name: queen.cpp
> Author: WUBO
> Mail: 7329422@qq.com
> Created Time: Wed Mar 18 08:09:51 2015
************************************************************************/
#include<iostream>
using namespace std;
int data[8][8]={0};
void show()
{
for(int x=0;x<=7;x++)
{
for(int y=0;y<=7;y++)
{
if(data[x][y])
cout<<"1 ";
else
cout<<"0 ";
}
cout<<"\n";
}
}
//打印棋盘
bool check(int x,int y)
{
if(y==0)
return true;
else
{
for(int i=0;i<y;i++)
for(int j=0;j<=7;j++)
{
if(data[i][j])
{
if(j==x)
return false;
if(x>j&&(y-i)==(x-j))
return false;
if(x<j&&(y-i)==(j-x))
return false;
}
}
}
return true;
}
//判断放下的棋子是否成功
int queen(int x,int y )
{
static int num=0;
static int line[8];//储存哪一行的queen 放在哪一列
static int t;
int z;
for(z=x;z<=7;z++)
{
data[y][z]=1;
if(y==0)
{
line[y]=z;
queen(0,y+1);
}
else if(check(z,y))
{
if(y==7)
{
show();
cout<<++num<<endl;
data[y][z]=0;
line[y]=z;
}
else
{
line[y]=z;
queen(0,y+1);
}
}
else
{
data[y][z]=0;
}
}
if(z==8)
{
y=y-1;
if(y==-1)
exit(0);
data[y][7]=0;
t=line[y];
data[y][t]=0;
x=t+1;
queen(x,y);
}
}
//递归函数
int main()
{
queen(0,0);
return 0;
}
0 0
- 我自己也写了一个八皇后的程序
- 写了一个八皇后问题的代码
- 写了一个八皇后解法
- 八皇后问题,自己写的c语言
- 我的完全自己写的一个程序
- 用PHP写的八皇后占位小程序
- 写了一个自己都觉得陌生的程序
- 自己写了一个简单的画图程序
- 我也有自己的blog了!
- 我也有自己的blog了
- 我也有自己的BLOG了:)
- 我也有自己的博客了
- 我也有自己的blog了!
- 我也有自己的博客了
- 我也有自己的博客了
- 我也要开始写文章了,练练自己的写作能力
- 自己写了一个河内塔程序
- 自己写了一个打包程序
- webx 中request 对象作为单例注入的实现
- 算法时间复杂度的计算
- android Preference相关样式修改
- 3月23--3月27工作总结
- HDU1535Invitation Cards(有向图,正向建图和反向建图各spfa一次)
- 我自己也写了一个八皇后的程序
- mahout推荐相似度学习总结
- 【逆向工程】 disunity的使用
- 编写程序实现字符串到整数的转换。
- spring-security错误记录(2)
- IOS Tableview删除-一行和多行
- (2)mysql支持的数据类型总结
- 在Spring3中,配置DataSource的方法有6种。---转自http://hackpro.iteye.com/blog/1037376
- [leetcode]Subsets