6*6数独,要求输出结果
6*6的盘面数组,空缺位用零表示
要求输出成以下结果
输入
000100
320004
654320
003456
405013
100040
输出
546132
321564
654321
213456
465213
1 3 2 6 4 5
public static void main(String[] args) {
//输入数组,没研究过数独怎么做的,就String了String [][] arr = {{"0","0","0","1","0","0"},{"3","2","0","0","0","4"},{"6","5","4","3","2","0"},{"0","0","3","4","5","6"},{"4","0","5","0","1","3"},{"1","0","0","0","4","0"}};//维度,长宽都是六int wd = 6;for(int i = 0;i < wd ;i++){ //初始化替换0,并按行消除String a1 = "123456";for(int j = 0;j < wd ;j++){a1 = a1.replace(arr[i][j],"");}for(int j = 0;j < wd ;j++){arr[i][j] = arr[i][j].replace("0",a1);}}fo_line(arr,wd);}public static void fo_line(String [][]arr,int wd){for(int i = 0;i < wd ;i++){ //按行消for(int j = 0;j < wd ;j++){if(arr[i][j].length()>1){for(int k = 0;k < wd ;k++){if(arr[i][k].length()<2 && arr[i][j].length()>1){arr[i][j] = arr[i][j].replace(arr[i][k], "");}}}}}if(fo_weisu(arr,wd)<1){//如果结果为0,所有元素都为一位fo_show(arr,wd);}else{fo_list(arr,wd);}
}public static void fo_list(String [][]arr,int wd){for(int i = 0;i < wd ;i++){ //按列消String res = "";for(int j = 0;j < wd ;j++){if(arr[j][i].length()>1){for(int k = 0;k < wd ;k++){if(arr[k][i].length()<2 && arr[j][i].length()>1){arr[j][i] = arr[j][i].replace(arr[k][i], "");}}}}}if(fo_weisu(arr,wd)<1){fo_show(arr,wd);}else{fo_line(arr,wd);}
}public static int fo_weisu(String [][]arr,int wd) {int ws = 0; //所有元素都为一位 输出0for(int i = 0;i < wd ;i++){ String res = "";for(int j = 0;j < wd ;j++){if(arr[i][j].length()>1){ws +=1;}}}return ws;
}public static void fo_show(String [][]arr,int wd) {for(int i = 0;i < wd ;i++){ //显示数组 String res = "";for(int j = 0;j < wd ;j++){res += arr[i][j]+" "; }System.out.println(res);}
}
运行结果:
6*6数独,要求输出结果相关推荐
- 软件工程实践第二次作业——个人项目实战(数独)
作业链接 1)Github项目地址 2)在开始实现程序之前,在下述PSP表格记录下你估计将在程序的各个模块的开发上耗费的时间 见 8). 3)解题思路描述 拿到题目后,阅读了项目需求,得知这次作业要求 ...
- 第一次软工作业(数独)
第一次软工作业(数独) 1.该项目的github地址: https://github.com/514DNA/sudoku 2.各个模块耗费的时间: PSP2.1 Personal Software P ...
- (附代码)数独大作业【读取数独,解数独,生成唯一解数独(随机,特定形状,不同难度生成),玩数独】
注:未经同意不要转载. 上学期简单的做了一个数独程序,实现了一些功能,想简单的为大家提供的思路. 为了避免某些情况出现,具体代码暂时先不发了,有不太懂的地方可以评论提问啊. 下面是我的具体报告: 一, ...
- 数独终局生成及残局求解
文章目录 一.项目地址 二.各模块开发时间预估 三.学习过程.解题思路 3.1 开发语言及运行环境 3.2 项目要求分析 3.2.1 需求建模 3.2.2 数据流设计方法 3.3 解题思路 3.3.1 ...
- 软件工程基础课-个人项目-数独
一.项目地址 二.PSP 三.解题思路 四.设计实现过程 4.1 代码风格规范 4.2 函数关系图 五.程序性能分析及改进 六.代码说明 七.单元测试与代码覆盖率分析 八.项目总结 8.1 个人的提升 ...
- 高级软件工程第三次作业:数独游戏界面功能
此次作业基本引用了,第二次作业中使用的code.在保留第二次作业的功能基础上添加了两个文件,实现了界面游戏的功能. 完成数独游戏界面功能,代码能实现以下题目要求: 生成任意数量的数独题目并将数独棋局依 ...
- Python学习案例2——数独解题及出题程序
第二个求解案例,我想到了数独.曾经有一段时间对数独求解非常感兴趣,在学习C++语言时也编写了数独求解程序.本次Python学习,要求比之前高一点,把出题程序也一起编写了吧. 1.数独简介 数独 (英语 ...
- 软件工程实践2017第二次作业-----个人项目实战之数独
软件工程实践2017第二次作业-----个人项目实战之数独 最后一门考试2017.9.16 github地址:https://github.com/ssuo/shudu 题目地址:http://www ...
- 高级软件工程第二次作业
1.Github地址 xinz 2.解题思路: 一开始拿到这道题的时候,对数独的概念不是那么清晰.通过题目中百度百科的概念,即被概括成满足以下三个条件的数字范围为1-9的棋盘:(1)每一行不能有重复的 ...
- 软件工程2017第二次作业
GitHub:sudoku 解题思路描述 刚看到题目的时候,我去,好难.吃了根冰棍冷静下来,开始细细思考.题目的要求是随机生成N个不重复的数独棋盘,有两种方案:1.用数字1~9填满第一个九宫格,然后再 ...
最新文章
- 2017 ACM ICPC Asia Shenyang Regional Contest 题解(10 / 13)【每日亿题2 / 16】
- 怎么提高大表和小表的连接查询效率?
- Windows自动启动程序的十大藏身之所
- nuxt渲染html文件,Nuxt页面级缓存
- Java生鲜电商平台-微服务入门与服务的拆分架构实战
- 反射与泛型 java_Java的反射 和 泛型的一个问题
- 随机过程:指数分布、泊松过程、更新过程(renewal process)+大数定律
- 实验2-1-1 计算摄氏温度 (5 分)
- 新手到黑客的最全入门路径图(附全部学习资料下载)!
- 经济应用文写作【5】
- Deep Learning 学习笔记
- 【统计学】用Stata做时间序列分析
- Linux系统查看服务器版本方法
- 计算机网络运输层的简单总结与思考
- 【实例】用PHP制作一个简单的日历
- 结构体与联合体概念引入
- 区块链开发(五)搭建以太坊区块链浏览器
- 保护计算机系统与数据有什么方法,计算机系统开机和硬盘数据保护方法,与其数据保护模块...
- Javaweb15==mysql+mybatis+servlet+axios+fasetjson+vue+elementUI前后端分离,实现列表后端分页、模糊查询后分页、新增、单一/批量删除、修改
- 基于springboot,vue校园点餐系统
热门文章
- rx560d linux 图形设计,RX 560D对比RX 560哪个好?RX560D与560的区别对比详细评测
- CAT1 4G+以太网开发板腾讯云手机微信小程序显示温度和下发控制
- r语言degseq2_第二次RNA-seq实战总结(3)-用DESeq2进行基因表达差异分析
- ichariot测试路由器有线转发性能
- 读《鸟哥的linux私房菜》有感--第四天
- 英语教学计划软件测试,第一学期英语教学计划
- 缠中说缠,最好用的缠论画笔和中枢的指标公式 通达信用
- matlab 离散系统稳定性,基于LMI的离散系统非脆弱H∞滤波器设计(Matlab,程序)
- 孪生网络图像相似度_图像相似度比对
- 理解苏宁:互联网转型之战