编程之美1.15构造数独---置换法java版
2016-05-31 21:43
309 查看
脑筋急转弯一样的东西。。。
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package Test; /** * * @author Administrator */ public class SudokuDisplace { public static void main(String[] args) { int[][] shudu = new int[9][9]; int[][] arr = {{3, 5, 8}, {7, 9, 4}, {1, 6, 2}}; for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { shudu[i][j] = 0; } } for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { shudu[i + 3][j + 3] = arr[i][j]; } } //置换行 for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (i == 0) { shudu[i + 3][j] =shudu[i+5][j+3]; shudu[i + 3][j + 6] = shudu[i+4][j+3]; } if (i == 1) { shudu[i + 3][j] = shudu[i+2][j+3]; shudu[i + 3][j + 6] = shudu[i+4][j+3]; } if (i == 2) { shudu[i + 3][j] = shudu[i+2][j+3]; shudu[i + 3][j + 6] = shudu[i+1][j+3]; } } } //置换列 for(int i=0;i<3;i++){ for(int j =0;j<3;j++){ if(j ==0){ shudu[i][j + 3] = shudu[i+3][j+5]; shudu[i + 6][j + 3] = shudu[i+3][j+4]; shudu[i][j]=shudu[i+3][j+2]; shudu[i+6][j]=shudu[i+3][j+1]; shudu[i][j+6]=shudu[i+3][j+8]; shudu[i+6][j+6]=shudu[i+3][j+7]; } if (j == 1) { shudu[i][j + 3] = shudu[i+3][j+2]; shudu[i + 6][j + 3] = shudu[i+3][j+4]; shudu[i][j] = shudu[i+3][j-1]; shudu[i+6][j]=shudu[i+3][j+1]; shudu[i][j+6]=shudu[i+3][j+5]; shudu[i+6][j+6]=shudu[i+3][j+7]; } if (j == 2) { shudu[i][j + 3] = shudu[i+3][j+2]; shudu[i + 6][j + 3] = shudu[i+3][j+1]; shudu[i][j] = shudu[i+3][j-1]; shudu[i+6][j]=shudu[i+3][j-2]; shudu[i][j+6]=shudu[i+3][j+5]; shudu[i+6][j+6]=shudu[i+3][j+4]; } } } for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { if (j != 8) { System.out.print(shudu[i][j] + " "); } else { System.out.println(shudu[i][j]); } } } } }
相关文章推荐
- Spring
- 学习java中的单例模式(Singleton)
- Java IO - PushbackInputStream&PushbackReader
- Java集合类框架—Collection、迭代器
- 转载:java反射机制详解
- Java中自定义注解
- 华为机试---查找两个字符串a,b中的最长公共子串
- Java:单例模式的七种写法
- 动态代理实现Spring Aop
- Spring从入门到精通(一)----IoC(控制反转)
- 【Struts2】:Interceptor实战之权限控制
- 【Java学习之路之1】java特性
- Java注解教程:自定义注解示例,利用反射进行解析
- Java学习总结(16.05.31)Java位运算符
- 共同学习SpringMVC源码--开篇语
- 码神学Java第一天
- Spring——jdk动态代理
- 深入学习java并发编程:Thread类的使用
- 《Spring实战》-2
- 华为机试---计算字符串的距离