栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

八皇后问题的java解决方式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

八皇后问题的java解决方式

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录
  • 一、八皇后问题
  • 二、代码


一、八皇后问题

8*8的棋盘中,每一行放置一个皇后,从第一行第一列开始放置皇后,每一个皇后不能存在于同一行同一列和同一斜线上,问有几种放置方法

我们的解题思路为`
利用一个一维数组来记录皇后的信息,其中下标为所在的行数,值为所在的列数

1.现将皇后放置在第一行第一列

2.如果符合规则,就利用递归,判断下一行皇后的位置

3.一旦遇到不符合规则的位置则皇后向右移动一位

4.最终一旦皇后在某一行找到一个合适位置且无法向下一行继续移动,就回溯到上一行并向右移动一位继续判断

5.每在最后一行找到一个合适位置,计数器count就+1

二、代码
package org.wql.recursion;


public class Queen2 {

    int max = 8;
    int[] arr = new int[max];
    static int count;

    public static void main(String[] args) {
        Queen2 queen2 = new Queen2();
        queen2.findAll(0);
        System.out.println(count);
    }

    //让每一个皇后都找到所有合适的位置,row表示行数
    public void findAll(int row){
        if(row==max){
            print();
            return;
        }
        for (int i=0;i
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/462099.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号