【算法】程序猿不写代码是不对的38
来源:互联网 发布:vb语言用处 编辑:程序博客网 时间:2024/06/06 10:41
package com.kingdz.algorithm.time201704;/** * 魔术方阵,简捷连续填数法<br/> * 口诀:1立首行中,右1上1,受阻下1<br/> * 由于算法限制只能生成奇数阶的方阵 * * @author kingdz * */public class Algo01 {public static void main(String[] args) {int[][] magic = genMagic(7);printMagic(magic);}/** * 打印魔术方阵 * * @param magic */public static void printMagic(int[][] magic) {for (int i = 0; i < magic.length; i++) {for (int j = 0; j < magic.length; j++) {System.out.print(magic[i][j] + "\t");}System.out.println();}}private static int[][] genMagic(int number) {if (number % 2 == 0) {System.out.println("参数只能是奇数");return new int[number][number];}int[][] magic = new int[number][number];int x = 0;int y = number / 2;int k = 1;magic[x][y] = k;while (k < number * number) {k++;x--;y++;// 判断是否越界if (x < 0) {x = x + number;}if (y >= number) {y = y - number;}// 如果移动后受阻,则回退if (magic[x][y] != 0) {x++;y--;// 判断是否越界if (x >= number) {x = x - number;}if (y < 0) {y = y + number;}}// 如果受阻则下移一位while (magic[x][y] != 0) {x++;if (x >= number) {x = 0;}}// System.out.println(x + "\t" + y + "\t" + k);magic[x][y] = k;}return magic;}}
0 0
- 【算法】程序猿不写代码是不对的38
- 【算法】程序猿不写代码是不对的1
- 【算法】程序猿不写代码是不对的2
- 【算法】程序猿不写代码是不对的3
- 【算法】程序猿不写代码是不对的4
- 【算法】程序猿不写代码是不对的5
- 【算法】程序猿不写代码是不对的6
- 【算法】程序猿不写代码是不对的7
- 【算法】程序猿不写代码是不对的8
- 【算法】程序猿不写代码是不对的9
- 【算法】程序猿不写代码是不对的10
- 【算法】程序猿不写代码是不对的11
- 【算法】程序猿不写代码是不对的12
- 【算法】程序猿不写代码是不对的13
- 【算法】程序猿不写代码是不对的14
- 【算法】程序猿不写代码是不对的15
- 【算法】程序猿不写代码是不对的16
- 【算法】程序猿不写代码是不对的17
- java 开源项目 免费
- 比较不错的几款开源的WPF Charts报表控件
- Android 如何调用第三方.so (.a) 文件
- 系统的简单注解
- Qt软件开发文档3---mainAPP调用dllManager中函数
- 【算法】程序猿不写代码是不对的38
- 算法 代码拷来终觉浅,绝知此事要躬行
- Js读取select单选值的几种方法
- 推荐系统学习总结
- 设计模式
- 20170401 summary
- 人群密度估计之CrowdNet
- 自定义圆形ImageView控件的两种方法
- Java界面设计