DFS训练~N皇后问题~解题报告

N皇后问题

题目描述:

在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。
你的任务是,对于给定的N,求出有多少种合法的放置方法。

Input:

共有若干行,每行一个正整数N≤10,表示棋盘和皇后的数量;如果N=0,表示结束。

Output:

共有若干行,每行一个正整数,表示对应输入行的皇后的不同放置数量。

Sample Input:

在这里插入图片描述

Sample Output:

在这里插入图片描述

思路分析:

这道题容易理解,只需要棋子不放在同一列,同一行,同一对角线就行了,判断列很容易,只需要用一个数组记录棋子所放的列数就行了,行数可以根据棋子数量来判断即可,对角线就要根据规律来判断,2个棋子如果在同一对角线,他们的横坐标之差就等于纵坐标之差,所以用一个数组在根据这个规律在记录就即可。这道题还有一个陷阱,

发布了51 篇原创文章 · 获赞 6 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/xiaosuC/article/details/104250839