当前位置: 首页 > news >正文

n后问题 回溯笔记

问题描述

在n×n格的棋盘上放置彼此不受攻击的n个皇后。 按照国际象棋的规则,皇后可以攻击与之处在同 一行或同一列或同一斜线上的棋子。n后问题等价于在n×n格的棋盘上放置n个皇后,任何2个皇后不放在同一行或同一列或同一斜线上。

代码 

import java.util.Scanner;import static java.lang.Math.abs;class Main{static int n;static int sum=0;public static void main(String[] args) {Scanner sc=new Scanner(System.in);n=sc.nextInt();int x[]=new int [n+1];Backtrack(1,x);}public static int[] Backtrack(int t,int x[]){if(t>n){sum++;System.out.println("第"+sum+"个情况:");for (int i = 1; i < x.length; i++) {for (int j = 1; j < x.length; j++) {if(j==x[i]) System.out.print("Q");else System.out.print("*");}System.out.println();}System.out.println();}else{for (int i = 1; i <= n; i++) {x[t] = i;if(Place(t,x)){Backtrack(t+1,x);}}}return x;}public static boolean Place(int t,int[] x){for (int j = 1; j <= t-1; j++) {if((abs(t - j) == abs(x[j] - x[t]))||(x[j] - x[t]==0)){return false;}}return true;}
}

运行结果 

脑子的坑 

代码会列出所有符合条件的情况。这个输入等于5时的运行结果没有截完整,太长了。

当输入为3时,是没有输出的,因为没有符合条件的解。

如果输入3没有输出,不要蒙圈,因为他就是没有输出!!!

http://www.lryc.cn/news/360302.html

相关文章:

  • 简述Java中实现Socket通信的步骤
  • Asp.Net Core 实现分片下载的最简单方式
  • [Mac软件]Leech for Mac v3.2 - 轻量级mac下载工具
  • 留给“端侧大模型”的时间不多了
  • Pytest框架中的Setup和Teardown功能
  • yolov10/v8 loss详解
  • Typescript高级: 深入理解infer关键字
  • JQC-3FF-S-Z 继电器模块使用(arduino)
  • 黑马一站制造数仓实战2
  • 网络I/O模型
  • Docker 简介和安装
  • 【源码】Spring Data JPA原理解析之Repository自定义方法命名规则执行原理(二)
  • Vue前端中从后端获取图片验证码
  • 【源码】多语言H5聊天室/thinkphp多国语言即时通讯/H5聊天室源码/在线聊天/全开源
  • gitlab 创建 ssh 和 token
  • Docker - Kafka
  • 一键实现文件夹批量高效重命名:轻松运用随机一个字母命名,让文件管理焕然一新!
  • Vue3项目练习详细步骤(第二部分:主页面搭建)
  • [个人总结]-java常用方法
  • 什么是Java泛型?它有什么作用
  • [机缘参悟-197] - 《道家-水木然人间清醒1》读书笔记 -21-看问题从现象到本质的层次
  • AIGC商业案例实操课,发觉其创造和商业的无限可能,Ai技术在行业应用新的商机
  • Java学习路径图
  • 文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《考虑动态定价的新能源汽车能源站优化运行》
  • 【简单讲解下Fine-tuning BERT,什么是Fine-tuning BERT?】
  • Docker搭建Redis主从 + Redis哨兵模式(一主一从俩哨兵)
  • Three.js——tween动画、光线投射拾取、加载.obj/.mtl外部文件、使用相机控制器
  • 内网渗透-在HTTP协议层面绕过WAF
  • qt QGroupBox radiobutton
  • jetson nano onnxruntime 安装