给定一组规则和约束条件，设计一个程序用于找到符合条件的解决方案。
以下是一个约束条件和一个规则：在一张8x8的棋盘上放置8个皇后，使得它们互不攻击。
这是一个经典的八皇后问题，可以通过回溯算法求解。回溯算法是一种递归地尝试所有可能性来寻找解决方案的算法。在这个问题中，每次递归向棋盘上的下一行添加一个皇后，并根据规则检查它是否与之前的皇后冲突。如果它冲突了，则回溯并尝试下一个位置。如果可以成功放置8个皇后，则找到了一种解决方案。