java计算八皇后_八皇后java算法
public class NQueens { public static int num = 0; // 累计方案总数 public static final int MAXQUEEN = 5;// 皇后个数,同时也是棋盘行列总数 public static int[] cols = new int[MAXQUEEN]; // 定义cols数组,表示n列棋子摆放情况
public NQueens() { // 核心函数,从第0列开始 getArrangement(0); System.out.println(MAXQUEEN + 皇后问题有 + num + 种摆放方法。); }
public void getArrangement(int n) { // 遍历该列所有不合法的行,并用rows数组记录,不合法即rows[i]=true boolean[] rows = new boolean[MAXQUEEN]; for (int i = 0; i < n; i++) { rows[cols[i]] = true; int d = n - i; if (cols[i] - d >= 0) rows[cols[i] - d] = true; if (cols[i] + d <= MAXQUEEN - 1) rows[cols[i] + d] = true;
}
for (int k = 0; k < MAXQUEEN; k++) { // 判断该行是否合法 if (rows[k]) continue; // 设置当前列合法棋子所在行数 cols[n] = k; // 当前列不为最后一列时 if (n < MAXQUEEN - 1) { getArrangement(n + 1); } else { // 累计方案个数 num++; // 打印棋盘信息 printChessBoard(); } } }
public void printChessBoard() { System.out.println(第 + num + 种走法); for (int i = 0; i < MAXQUEEN; i++) { for (int j = 0; j < MAXQUEEN; j++) { if (i == cols[j]) { System.out.print(0 ); } else System.out.print(+ ); } System.out.println(); }
}
public static void main(String args[]) { NQueens queen = new NQueens(); } }
java计算八皇后_八皇后java算法相关推荐
- java计算何时赶超_网上说 Java 的性能已经达到甚至超过 C++,是真的吗?
求一个完成中值滤波的纯JAVA代码.我手里正好有一个C++的中值滤波代码,想对比下两者究竟差距多大. @圆胖肿 可否写一个JAVA程序来佐证下你的观点呢? 我这面的C++代码,对一张5184*3456 ...
- java计算时间差距_硬计算和软计算之间的差异
java计算时间差距 什么是计算? (What is Computing?) The process of accomplishing a particular task with the help ...
- java教程哪里好_最好的Java教程是什么?
什么是Java最好的教程? 能够带你入门的叫做好教程?是的,不管教程一什么样的方式去上课,我觉得能够带我顺利入门的教程就是一个很好的教程 其实每个人的意见都不一样,有的会觉得看着开心的才是好教程,有的 ...
- java获取机器号_(转)JAVA获得机器码的实现
http://yangshangchuan.iteye.com/blog/2012401 首先,定义了一个统一的接口,以支持不同操作系统不同实现的透明切换: Java代码 收藏代码 /** *生成机 ...
- java整数的因式分解_如何在Java中找到整数的质数-因式分解
java整数的因式分解 编程课程中的常见家庭作业/任务之一是关于Prime Factorization. 要求您编写一个程序以找到给定整数的素因子 . 一个数字的素数因子是将精确地除以给定数字的所有素 ...
- 新手学java 学哪方面_初学者学Java应从哪些方面学习?
原标题:初学者学Java应从哪些方面学习? Java作为应用于网络的最好语言,前景无限看好.然而,就算用Java建造一个不是很烦琐的web应用,也不是件轻松的事情.那么,初学者学Java应从哪些方面学 ...
- java象棋实验报告_中国象棋java程序设计实验报告
中国象棋java程序设计实验报告 东北大学秦皇岛分校信息与计算科学系Java 程序设计实验报告专业名称 信 息 与 计 算 科 学班级学号 7080206学生姓名 彭 军指导教师 王 薇完成时间 20 ...
- java象棋实验报告_中国象棋java程序设计实验报告.doc
中国象棋java程序设计实验报告.doc 东北大学秦皇岛分校 信息与计算科学系 Java 程序设计实验报告 专业名称 信息与计算科学 班级学号 7080206 学生姓名 彭 军 指导教师 王薇 完成时 ...
- java反编译工具_如何保护Java程序 才能防止Java反编译
简介:Java是一种跨平台的.解释型语言.Java 源代码编译中间"字节码"存储于class文件中.Class文件是一种字节码形式的中间代码,该字节码中包括了很多源代码的信息,例如 ...
- java date加月_如何在Java中向当前日期添加一个月?
LocalDate::plusMonths 例: LocalDate.now( ) .plusMonths( 1 ); 最好指定时区. LocalDate.now( ZoneId.of( " ...
最新文章
- RDKit | 基于RDKit探索ChEMBL数据库中合成药物历史
- 腾讯下一个重点:硬件;硬件自身的未来也正进入多元化发展
- 全国python一级考试时间_2019年北京全国计算机一级考试时间
- DFB [03] 移植遇到的实际问题 基于某著名平台
- 第二阶段团队冲刺(五)
- 【论文笔记】NLP 预训练模型综述
- 查看centos操作系统、java_jdk、hadoop位数
- 2.RabbitMQ实战 --- 理解消息通信
- tftp服务器默认ip怎么修改,tftp服务器的ip地址
- 小程序长按图片识别二维码
- Android读取手机存储文件,android 手机存储文件夹学习
- 学Python必须懂的例子
- 小游戏————坦克大战
- HDU-5755-Gambler Bo-高斯消元
- 爬虫笔记41之反爬系列四:字体反爬、JS反爬
- vue项目报错:warning Disallow self-closing on HTML void elements (<img/>)
- 汉信码生成和识别SDK
- linux防火墙富规则,[Linux]Redhat7防火墙配置汇总
- jlink怎么调试linux程序_Ubuntu12.10 使用JLink连接开发板用arm-gdb调试ARM程序
- 分享几张与互联网相关的搞笑图片