8皇后问题(可以是其他数字的皇后)(转载注明出处谢谢!!)
2014-06-02 16:48
302 查看
#include<stdio.h>
#include <math.h>
#include <string>
#define N 8//改变数字代表几个皇后
char board
;
int col
;
int t;
int safetyPlace(int x,int y)
{
int i,j;
for(i = 0; i < x;i++)
{
j =col[i];
if(x==i||y==j)
return 0;
if(x-y==i-j||x+y==i+j)//判断左右对角线
return 0;
}
return 1;
}
void get_position(int i)
{
int w,j;
char a[1]={3};
if(i==N)
{
for(w=0;w<N;w++)
{
for(j=0;j<N;j++)
{
if(board[w][j]==001)
printf("%c ",board[w][j]);
else
{
printf("%c",a[0]);
printf("%c ",board[w][j]);
}
}
printf("\n");
}
printf("----------------------------\n");
t++;
}
else
{
int u;
for(u=0;u<N;u++)
{
if(safetyPlace(i,u)==1)
{
col[i]=u;
board[i][u]=001;
get_position(i+1);
col[i]=0;
board[i][u]=0;
}
}
}
}
int main()
{
printf("%c是皇后!\n\n",001);
get_position(0);
printf("一共%d种方法\n",t);
return 0;
}
#include <math.h>
#include <string>
#define N 8//改变数字代表几个皇后
char board
;
int col
;
int t;
int safetyPlace(int x,int y)
{
int i,j;
for(i = 0; i < x;i++)
{
j =col[i];
if(x==i||y==j)
return 0;
if(x-y==i-j||x+y==i+j)//判断左右对角线
return 0;
}
return 1;
}
void get_position(int i)
{
int w,j;
char a[1]={3};
if(i==N)
{
for(w=0;w<N;w++)
{
for(j=0;j<N;j++)
{
if(board[w][j]==001)
printf("%c ",board[w][j]);
else
{
printf("%c",a[0]);
printf("%c ",board[w][j]);
}
}
printf("\n");
}
printf("----------------------------\n");
t++;
}
else
{
int u;
for(u=0;u<N;u++)
{
if(safetyPlace(i,u)==1)
{
col[i]=u;
board[i][u]=001;
get_position(i+1);
col[i]=0;
board[i][u]=0;
}
}
}
}
int main()
{
printf("%c是皇后!\n\n",001);
get_position(0);
printf("一共%d种方法\n",t);
return 0;
}
相关文章推荐
- 冒泡排序(转载等 要注明出处,谢谢!)
- java 代码解压7z(带密码)转载请注明出处,谢谢
- 华为收银小助手(转载要注明出处,谢谢!!)
- ProbS CF matlab源代码(二分系统)(原创作品,转载注明出处,谢谢!)
- IOS面试题归总(未完结) 转载请注明出处!谢谢
- [置顶] 多层Fragment嵌套出现重影问题_原理解析_解决方法(Winter原创,转载请注明出处)
- fedora 16下配置nfs、ftp服务遇到的两个问题总结,备忘备查,转载请注明出处,商业用途请联系本人
- 引用请注明出处和转载请注明出处?我的看法
- 漂浮窗口之相对完善版(原创,转载请注明出处)
- [原创]WCF入门级使用教程(转载请注明出处)
- 求可以对其他程序进行apihook的可用代码!!谢谢
- DataGridViewComboBoxColumn 可以让用户输入并自动匹配选项的问题 [问了很多人,找了很多站都没得到答案,所以只好放首页,请管理员体谅.谢谢!]
- [转载]针对其他国家里粮食短缺问题,请你谈谈自己的看法
- S3C2450自动升级[原创作品,转载请注明出处]
- 引用请注明出处和转载请注明出处?我的看法
- 【转载】EXCEL中条码问题:条形码能插入,但只有一种类型,数字不能改,修改属性后也不显示
- SilverLight学习笔记--如何在xaml文件中操作用户在后台代码定义的类(2)--示例篇:创建一个登录控件(原创)(转载本文请注明出处)
- 我是个vb初学者想请教高手点简单的vb问题如果可以请加我的QQ:382245409谢谢
- 感谢c/c++学习群17185131的邀请,得以认识了很多很有兴趣的朋友,谢谢!如果有什么问题可以一起探讨,发评论,如果我懂的,我会进行回复。:)
- Vista中应用程序需要Administrator权限,自动提示用户需要管理员权限的方法 (原创,转载请注明出处)