| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6539 人关注过本帖
标题:八皇后问题
取消只看楼主 加入收藏
独孤客
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2006-5-1
收藏
 问题点数:0 回复次数:1 
八皇后问题

八皇后:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。如何将8个皇后放在棋盘上(有8*8个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题。
这个程序我看不懂.哪位朋友能我注释一下.谢谢!
#include "stdio.h"

int count;

int queen [10], column[20],left[20],right[20];

void prt1()

{ int j;

printf("No.%d ",++count);

for (j=1;j<=8;j++) printf("%3d",queen[j]);

printf("\n");

}

void try(int i)

{int j;

for (j=1;j<=8;j++)

if (column[j] && left[i-j+8] && right[i+j])

{ queen[i]=j; column[j]=0;

left[i-j+8]=0; right[i+j]=0;

if (i<8) try(i+1);

else prt1();

column[j]=left[i-j+8]=right[i+j]=1;

}

}

main()

{int i;

for (i=1;i<=16;i++)

column[i]=left[i]=right[i]=1;

count=0; try(1);

}


搜索更多相关主题的帖子: 皇后 
2006-05-01 10:24
独孤客
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2006-5-1
收藏
得分:0 
好象我懂了.谢谢哦!

乘天地之正,御六气之辩,以游于无穷,是为逍遥!!!
2006-05-08 10:49
快速回复:八皇后问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.044288 second(s), 8 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved