shenxian32 2021-12-14 13:34 采纳率: 90.5%
浏览 33
已结题

关于#八皇后算法#的问题:

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容

没有运行结果

img

我的解答思路和尝试过的方法

提供一个一维数组表示八皇后棋盘,下标表示八皇后棋盘的行,值表示每个皇后在这一行的位置
提供一个遍历数组的方法,提供一个判断皇后位置是否合理的方法。提供一个移动皇后位置的方法,运用递归移动皇后。

我想要达到的结果

遍历所有八皇后解法


public class ba {
    private  int max=8;
    private  int[]map=new int[max];
    public static void main(String[] args) {
   ba b=new ba();
   b.fang(0);
    }
    //定义一个判断是否为在同一列同一水平线的方法
    public  boolean get(int n){
        for (int i=0; i<n; i++) {
            if(map[i]==map[n]||Math.abs(map[n]-map[i])==Math.abs(n-i)){
                return false;
            }
        }
        return true;
    }
    //定义一个方法遍历数组
    public  void list(){
        for (int i = 0; i < map.length; i++) {
            System.out.print(map[i]+"\t");
        }
        System.out.println();
    }
    //定义一个方法来放置皇后
    public  void fang(int n){//从第n个开始放置
        if(n==max){
            list();
            return ;
        }for (int i = 0; i < n; i++) {
                map[n]=i;//
                if(get(n)){
                   fang(n+1);
            }
        }

    }
}

  • 写回答

1条回答 默认 最新

  • 俺不理解 2021-12-14 13:41
    关注

    img

    建议使用debug工具逐步调试自己的代码来达到自己想要的结果~

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月22日
  • 已采纳回答 12月14日
  • 创建了问题 12月14日

悬赏问题

  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)