• 八皇后问题


    笨蛋一个,做了一天多才做出来,还是有提示的情况下。。。。下面是我的代码

    package com.www.demo06;
    
    
    public class Queen8 {
        int sum = 0;//总共多少方法
        int num = 1;//下的棋子个数
    
        int[] arr = new int[8];//记录哪个位置落下棋子了,arr[i]中的i表示行,值表示列
    
        public void initialQueen(){
            for (int i = 0;i < 8;i++){
                queen(0,i);
            }
            System.out.println(sum);
        }
    
        public void queen(int x,int y){//皇后位置(x,y)
            //第一步-----限制条件:走通返回路径,没走通循环下一个可走路径
            arr[x] = y;//第x行第y列放皇后
            if (num == 8){
                for (int i = 0;i < 8;i++){
                    System.out.print("(" + i + "," + arr[i] + ")");
                }
                System.out.println();
                sum++;
                return;
            }
            //第二步
            for (int j = 0;j < 8;j++){//下一个棋子可能放的列数
                //对于每一列都进行判断
                num++;
                int i = 0;
                while (i <= x) {
                    //对列数进行限制:判断完所有限制之后,可以下棋
                    //对于第x+1行第j列,如果前面的x行对其限制有用,跳出循环看下一列,如果没用,进入递归
                    if (j == arr[i] - x - 1 + i|| j == arr[i] || j == arr[i] + x + 1 -i){//竖和斜线
                        break;
                    }
                    if (i == x){
                        queen(x + 1,j);
                    }
                    i++;
                }
                num--;//执行结束,恢复棋子个数,继续下一个可以下棋的列
            }//假如每一列都不符合要求,就返回上一个的循环
        }
        
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49

    输出结果如下:
    (0,0)(1,4)(2,7)(3,5)(4,2)(5,6)(6,1)(7,3)
    (0,0)(1,5)(2,7)(3,2)(4,6)(5,3)(6,1)(7,4)
    (0,0)(1,6)(2,3)(3,5)(4,7)(5,1)(6,4)(7,2)
    (0,0)(1,6)(2,4)(3,7)(4,1)(5,3)(6,5)(7,2)
    (0,1)(1,3)(2,5)(3,7)(4,2)(5,0)(6,6)(7,4)
    (0,1)(1,4)(2,6)(3,0)(4,2)(5,7)(6,5)(7,3)
    (0,1)(1,4)(2,6)(3,3)(4,0)(5,7)(6,5)(7,2)
    (0,1)(1,5)(2,0)(3,6)(4,3)(5,7)(6,2)(7,4)
    (0,1)(1,5)(2,7)(3,2)(4,0)(5,3)(6,6)(7,4)
    (0,1)(1,6)(2,2)(3,5)(4,7)(5,4)(6,0)(7,3)
    (0,1)(1,6)(2,4)(3,7)(4,0)(5,3)(6,5)(7,2)
    (0,1)(1,7)(2,5)(3,0)(4,2)(5,4)(6,6)(7,3)
    (0,2)(1,0)(2,6)(3,4)(4,7)(5,1)(6,3)(7,5)
    (0,2)(1,4)(2,1)(3,7)(4,0)(5,6)(6,3)(7,5)
    (0,2)(1,4)(2,1)(3,7)(4,5)(5,3)(6,6)(7,0)
    (0,2)(1,4)(2,6)(3,0)(4,3)(5,1)(6,7)(7,5)
    (0,2)(1,4)(2,7)(3,3)(4,0)(5,6)(6,1)(7,5)
    (0,2)(1,5)(2,1)(3,4)(4,7)(5,0)(6,6)(7,3)
    (0,2)(1,5)(2,1)(3,6)(4,0)(5,3)(6,7)(7,4)
    (0,2)(1,5)(2,1)(3,6)(4,4)(5,0)(6,7)(7,3)
    (0,2)(1,5)(2,3)(3,0)(4,7)(5,4)(6,6)(7,1)
    (0,2)(1,5)(2,3)(3,1)(4,7)(5,4)(6,6)(7,0)
    (0,2)(1,5)(2,7)(3,0)(4,3)(5,6)(6,4)(7,1)
    (0,2)(1,5)(2,7)(3,0)(4,4)(5,6)(6,1)(7,3)
    (0,2)(1,5)(2,7)(3,1)(4,3)(5,0)(6,6)(7,4)
    (0,2)(1,6)(2,1)(3,7)(4,4)(5,0)(6,3)(7,5)
    (0,2)(1,6)(2,1)(3,7)(4,5)(5,3)(6,0)(7,4)
    (0,2)(1,7)(2,3)(3,6)(4,0)(5,5)(6,1)(7,4)
    (0,3)(1,0)(2,4)(3,7)(4,1)(5,6)(6,2)(7,5)
    (0,3)(1,0)(2,4)(3,7)(4,5)(5,2)(6,6)(7,1)
    (0,3)(1,1)(2,4)(3,7)(4,5)(5,0)(6,2)(7,6)
    (0,3)(1,1)(2,6)(3,2)(4,5)(5,7)(6,0)(7,4)
    (0,3)(1,1)(2,6)(3,2)(4,5)(5,7)(6,4)(7,0)
    (0,3)(1,1)(2,6)(3,4)(4,0)(5,7)(6,5)(7,2)
    (0,3)(1,1)(2,7)(3,4)(4,6)(5,0)(6,2)(7,5)
    (0,3)(1,1)(2,7)(3,5)(4,0)(5,2)(6,4)(7,6)
    (0,3)(1,5)(2,0)(3,4)(4,1)(5,7)(6,2)(7,6)
    (0,3)(1,5)(2,7)(3,1)(4,6)(5,0)(6,2)(7,4)
    (0,3)(1,5)(2,7)(3,2)(4,0)(5,6)(6,4)(7,1)
    (0,3)(1,6)(2,0)(3,7)(4,4)(5,1)(6,5)(7,2)
    (0,3)(1,6)(2,2)(3,7)(4,1)(5,4)(6,0)(7,5)
    (0,3)(1,6)(2,4)(3,1)(4,5)(5,0)(6,2)(7,7)
    (0,3)(1,6)(2,4)(3,2)(4,0)(5,5)(6,7)(7,1)
    (0,3)(1,7)(2,0)(3,2)(4,5)(5,1)(6,6)(7,4)
    (0,3)(1,7)(2,0)(3,4)(4,6)(5,1)(6,5)(7,2)
    (0,3)(1,7)(2,4)(3,2)(4,0)(5,6)(6,1)(7,5)
    (0,4)(1,0)(2,3)(3,5)(4,7)(5,1)(6,6)(7,2)
    (0,4)(1,0)(2,7)(3,3)(4,1)(5,6)(6,2)(7,5)
    (0,4)(1,0)(2,7)(3,5)(4,2)(5,6)(6,1)(7,3)
    (0,4)(1,1)(2,3)(3,5)(4,7)(5,2)(6,0)(7,6)
    (0,4)(1,1)(2,3)(3,6)(4,2)(5,7)(6,5)(7,0)
    (0,4)(1,1)(2,5)(3,0)(4,6)(5,3)(6,7)(7,2)
    (0,4)(1,1)(2,7)(3,0)(4,3)(5,6)(6,2)(7,5)
    (0,4)(1,2)(2,0)(3,5)(4,7)(5,1)(6,3)(7,6)
    (0,4)(1,2)(2,0)(3,6)(4,1)(5,7)(6,5)(7,3)
    (0,4)(1,2)(2,7)(3,3)(4,6)(5,0)(6,5)(7,1)
    (0,4)(1,6)(2,0)(3,2)(4,7)(5,5)(6,3)(7,1)
    (0,4)(1,6)(2,0)(3,3)(4,1)(5,7)(6,5)(7,2)
    (0,4)(1,6)(2,1)(3,3)(4,7)(5,0)(6,2)(7,5)
    (0,4)(1,6)(2,1)(3,5)(4,2)(5,0)(6,3)(7,7)
    (0,4)(1,6)(2,1)(3,5)(4,2)(5,0)(6,7)(7,3)
    (0,4)(1,6)(2,3)(3,0)(4,2)(5,7)(6,5)(7,1)
    (0,4)(1,7)(2,3)(3,0)(4,2)(5,5)(6,1)(7,6)
    (0,4)(1,7)(2,3)(3,0)(4,6)(5,1)(6,5)(7,2)
    (0,5)(1,0)(2,4)(3,1)(4,7)(5,2)(6,6)(7,3)
    (0,5)(1,1)(2,6)(3,0)(4,2)(5,4)(6,7)(7,3)
    (0,5)(1,1)(2,6)(3,0)(4,3)(5,7)(6,4)(7,2)
    (0,5)(1,2)(2,0)(3,6)(4,4)(5,7)(6,1)(7,3)
    (0,5)(1,2)(2,0)(3,7)(4,3)(5,1)(6,6)(7,4)
    (0,5)(1,2)(2,0)(3,7)(4,4)(5,1)(6,3)(7,6)
    (0,5)(1,2)(2,4)(3,6)(4,0)(5,3)(6,1)(7,7)
    (0,5)(1,2)(2,4)(3,7)(4,0)(5,3)(6,1)(7,6)
    (0,5)(1,2)(2,6)(3,1)(4,3)(5,7)(6,0)(7,4)
    (0,5)(1,2)(2,6)(3,1)(4,7)(5,4)(6,0)(7,3)
    (0,5)(1,2)(2,6)(3,3)(4,0)(5,7)(6,1)(7,4)
    (0,5)(1,3)(2,0)(3,4)(4,7)(5,1)(6,6)(7,2)
    (0,5)(1,3)(2,1)(3,7)(4,4)(5,6)(6,0)(7,2)
    (0,5)(1,3)(2,6)(3,0)(4,2)(5,4)(6,1)(7,7)
    (0,5)(1,3)(2,6)(3,0)(4,7)(5,1)(6,4)(7,2)
    (0,5)(1,7)(2,1)(3,3)(4,0)(5,6)(6,4)(7,2)
    (0,6)(1,0)(2,2)(3,7)(4,5)(5,3)(6,1)(7,4)
    (0,6)(1,1)(2,3)(3,0)(4,7)(5,4)(6,2)(7,5)
    (0,6)(1,1)(2,5)(3,2)(4,0)(5,3)(6,7)(7,4)
    (0,6)(1,2)(2,0)(3,5)(4,7)(5,4)(6,1)(7,3)
    (0,6)(1,2)(2,7)(3,1)(4,4)(5,0)(6,5)(7,3)
    (0,6)(1,3)(2,1)(3,4)(4,7)(5,0)(6,2)(7,5)
    (0,6)(1,3)(2,1)(3,7)(4,5)(5,0)(6,2)(7,4)
    (0,6)(1,4)(2,2)(3,0)(4,5)(5,7)(6,1)(7,3)
    (0,7)(1,1)(2,3)(3,0)(4,6)(5,4)(6,2)(7,5)
    (0,7)(1,1)(2,4)(3,2)(4,0)(5,6)(6,3)(7,5)
    (0,7)(1,2)(2,0)(3,5)(4,1)(5,4)(6,6)(7,3)
    (0,7)(1,3)(2,0)(3,2)(4,5)(5,1)(6,6)(7,4)
    92

  • 相关阅读:
    1.5python 文件操作_python量化实用版教程(初级)
    学习笔记5--自动驾驶汽车计算平台
    Android组件通信——Service(二十七)
    LeetCode710. 黑名单中的随机数.Random Pick with Blacklist [hash映射][前缀和][二分]
    用c++实现五子棋小游戏
    mongoose 搭建 http 服务 -- 编译
    JAVA计算机毕业设计银枫家政服务管理系统Mybatis+源码+数据库+lw文档+系统+调试部署
    Maven常见命令
    申诉解决TeamViewer免费个人版被误判为商业使用
    数字逻辑·时序线路设计【原始状态表】
  • 原文地址:https://blog.csdn.net/qq_41571545/article/details/125559803