最近小孩在小学数学培训,需要做一个完成幻方的做法

幻方的口诀

口诀:
1 居上行正中央,

依次斜填切莫忘,

上出框界往下写,

右出框时左边放,

重复便在下格填,

出角重复一个样。

附上java的实现

package com.sf.test;public class huanfang {public static void main(String[] args) {try {getHF(3,1,1);} catch (Exception e) {e.printStackTrace();}}/*** size为 自然数且为奇数,设置一个(2N+1)的幻方 begin 为开始数 ,步长为 step 的连续数,填写size*size的魔方* * @param args*/public static  int[][] getHF(int size,int begin,int step) throws Exception{if(size<0||size%2==0){throw new  Exception("size must be odd number ");}if(begin<=0){throw new  Exception("the first number must beyong zero ");}if(step<=0){throw new  Exception("the step number must beyong zero ");}int n = size/2;int j = 0;int k = 0;int temp = 0;int length = (2 * n + 1) * (2 * n + 1);int array[][] = new int[2 * n + 1][2 * n + 1];array[0][n] = begin;j = 0;k = n;temp = begin;for (int i = 0; i < length - 1; i++) {int nextJ = j - 1;int nextK = k + 1;System.out.println(i + "  the x " + nextJ + "  the y " + nextK);// 对角线出线if (nextJ == -1 && nextK == 2 * n + 1) {nextJ = 1;nextK = 2 * n;}// 如果出现了J 出线的且不是对角线,则转到下个if (nextJ < 0 && nextK != 2 * n + 1) {nextJ = 2 * n;}// 如果出现了K 出线的且不是对角线,则转到下个if (nextJ >= 0 && nextK == 2 * n + 1) {nextK = 0;}// 如果右上角有数,则下移if (nextJ >= 0 && nextK <= 2 * n) {if (array[nextJ][nextK] != 0) {nextJ = j + 1;nextK = k;}}System.out.println(i + " firt  the x " + nextJ + "  the y " + nextK);array[nextJ][nextK] = temp + step;System.out.println(i + " next  the x " + nextJ + "  the y " + nextK);System.out.println(i + " next  value " + array[nextJ][nextK]);j = nextJ;k = nextK;temp = temp + step;System.out.println("***********************************************");for (int l = 0; l < (2 * n + 1); l++) {for (int m = 0; m < (2 * n + 1); m++) {System.out.print((array[l][m] < 10 ? "0" : "")+ array[l][m] + ",");}System.out.println();}System.out.println("***********************************************");}return array;}}

java 幻方的实现相关推荐

  1. java 偶数求和 数组_JAVA实现幻方

    作者:刘亮 幻方(Magic Square)是一种将数字安排在正方形格子中,使每行.列和对角线上的数字和都相等的方法. 幻方也是一种中国传统游戏.旧时在官府.学堂多见.它是将从一到若干个数的自然数排成 ...

  2. java判断44数组是否是4阶幻方_2015蓝桥杯决赛Java A组 第二题--四阶幻方

    //把1~16的数字填入4x4的方格中,使得行.列以及两个对角线的和都相等,满足这样的特征时称为:四阶幻方. // //四阶幻方可能有很多方案.如果固定左上角为1,请计算一共有多少种方案. //比如: ...

  3. 奇数阶幻方 java_N(奇数)阶幻方-java实现代码

    看完最强大脑,有一期是说N阶幻立方的,作为一个程序员,我的第一反应时我可以用程序实现,在此公布N(奇数)阶幻方的java实现代码: package com.lzugis.test; public cl ...

  4. 神奇的幻方(洛谷P2615题题解,Java语言描述)

    题目要求 P2615题目链接 分析 注意题目说的是,幻方的N必定是奇数(实测确实不能是偶数),那就不需要检测了. 实际模拟,就是一个地图,按指定的要求移动就行. 这种题,看着吓人,但是其实严格按照说编 ...

  5. JAVA实现置换加密和幻方加密(密码学)

    一.实验目的 帮助学生掌握置换密码的加密解密过程,能够利用所学过的编程语言,熟悉加密算法流程与编程实现加密算法.使学生掌握编程实现实际问题中的方法,提高专业技能和专业素养. 要求学生掌握算法的程序实现 ...

  6. 三阶幻方java解法_蓝桥杯决赛 Java大学B组 第二题 反幻方

    题目 反幻方 我国古籍很早就记载着 2 9 4 7 5 3 6 1 8 这是一个三阶幻方.每行每列以及对角线上的数字相加都相等. 下面考虑一个相反的问题. 可不可以用 1~9 的数字填入九宫格. 使得 ...

  7. P2615 神奇的幻方---Java

    题目描述幻方是一种很神奇的 N∗NN*NN∗N 矩阵:它由数字 1,2,3,⋯⋯ ,N×N1,2,3,\cdots \cdots ,N \times N1,2,3,⋯⋯,N×N 构成,且每行.每列及两 ...

  8. java 蓝桥杯 九宫幻方 ---ERIC-0222

    资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 小明最近在教邻居家的小朋友小学奥数,而最近正好讲述到了三阶幻方这个部分,三阶幻方指的是将1~9不重复的填入一个3*3的矩阵当中,使得每 ...

  9. java —— 神奇的幻方

    java -- 神奇的幻方 题目详情: 幻方是一种很神奇的NN矩阵:它由数字1,2,3,--,NN构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: ...

最新文章

  1. 我对计算机的看法英语作文,我对网络的看法英语作文
  2. 简单介绍Idea使用正则表达式批量替换字符串的方法
  3. 同一个网站,手机端跟电脑端显示不同是怎么实现的?...
  4. JS魔法堂:不完全国际化本地化手册 之 拓展篇
  5. python篮球-用Python让蔡徐坤在我的命令行里打篮球!|附完整代码
  6. 颠覆传统的电商智能助理-阿里小蜜技术揭秘
  7. oracle杀死进程时权限不足_当集群和数据库软件目录都被chown -R时,如何快速修复...
  8. TrueSec引导的Linux系统和安全检测工具预览
  9. Spring MVC集成Tiles使用方法
  10. mysql启动多端口
  11. linux下创建只读账号,Linux只读账号配置
  12. 数据库篇之[bsp_orders]数据表-BrnShop1.9升级至2.1升级说明(非官方版本)
  13. 科学技术的不完备性及其实践意义
  14. ThinkPHP5校园图书馆管理系统
  15. FFMPEG详解(完整版)
  16. iframe透明 自适应高度
  17. 小程序switch内部加上文字_干货 | 微信小程序教程:写一个能自定义尺寸、样式的switch...
  18. Excel 合并居中后无法自动换行
  19. Android Studio实现百度地图定位(显示经纬度和地址)
  20. 手搓GPT系列之 - Logistic Regression模型,Softmax模型的损失函数与CrossEntropyLoss的关系

热门文章

  1. 主定理(Master Theorem)
  2. python(十四)--Django学习快速入门
  3. SSH登录及其原理详解
  4. C#预处理器指令之#define/#undefine/#if/#elif/#else/#endif
  5. 培训栏目征集大家意见
  6. 传统数据仓库 DW/EDW/BI/ODS/DM/ETL
  7. 数据降维几种方法,主成分分析学习和代码实现
  8. vue移动端框架mint-ui的使用
  9. Poj 1135 Domino Effect(Dijkstra)
  10. 如何clone github wiki?