一、提出问题

所谓“奇数阶魔方阵”是指n为不小于3的奇数的魔方阵。这类魔方阵的形式多样,这里我们仅讨论其中的一种形式的正规魔方阵。例如:3阶、5阶和7阶的魔方阵如图3 – 4 所示。

图3 – 4 3阶5阶和7阶魔方阵

容易知道,这三个魔方阵的魔方常数分别是15、65和175。

现在要求给出:能让计算机自动输出类似图3 – 4 所示的n阶奇数魔方阵的算法,其中n为任意给定的一个不小于3的奇数。

二、简单分析

决定“奇数阶魔方阵”的关键是要按要求决定其方阵中的各个数字。观察图3 – 4中的三个奇数阶魔方阵,不难发现:

1.由于是正规魔方,故所填入的n 2个不同整数依次为1、2、3、…、n 2

2.各行、列和对角线上的数字虽各不相同,但其和却是相同的。这表明,其魔方常数可由公式n ( n2 + 1 ) / 2得到。

3.数字在阵列中的次序,并没有遵从阵列单元的行、列下标的顺序,但数字“1”却始终出现在阵列第一行的正中间位置,而数字“n 2”也始终出现在阵列第n行的正中间位置,这说明阵列中的数字排列应该是有一定规律的。

import java.util.Scanner;
/*** * @author 冷血**/
public class Java_4 {private int[][] a;private int j ,i ,sum = 1;private int N,n;public Java_4(int n){N = n;this.n = n;N=N-1;a = new int[n][n];}public void jiSuan(){i = 0; j=n/2;a[i][j] =sum ;while(sum<=n*n){if(i==0&&j!=N){i = N;j++;sum++;a[i][j]=sum;}if(sum==n*n)break;if(j==N&&i!=0){j=0;i--;sum++;a[i][j]=sum;        }if(j==N&&i==0){i++;sum++;a[i][j]=sum;}if(sum==n*n)break;if(i!=0&&j!=N&&a[i-1][j+1]==0){i--;j++;sum++;a[i][j] = sum;}if(sum==n*n)break;if(i!=0&&j<N&&a[i-1][j+1]!=0){i++;sum++;a[i][j] = sum;}if(sum==n*n)break;}if(i==0&&j==0){i=N;sum++;j++;a[i][j] = sum;}}public void paint(){for(int k = 0;k<a.length;k++){for(int l = 0;l<a.length;l++){System.out.printf("%-5d",a[k][l]);}System.out.println();System.out.println();}}public static void main(String[] args) {int m=0;@SuppressWarnings("resource")Scanner nuber = new Scanner(System.in);m = nuber.nextInt();Java_4 java = new Java_4(m);java.jiSuan();java.paint();}
}

转载于:https://www.cnblogs.com/qq1402876003/p/4998346.html

java计算奇数阶魔方阵相关推荐

  1. #奇数阶魔方阵c语言

    奇数阶魔方阵简化版 #魔方阵C语言# #include <stdio.h> int main( ) { int a[16][16]={0},i,j,n,k; while(1) { prin ...

  2. 任意阶魔方阵matlab程序,【精品】任意阶魔方阵算法(c语言)

    n阶幻方是由前n^2(n的2次方)个自然数组成的一个n阶方阵,其各行.各列及两条对角线所含的n个数的和相等.洛书就是最基本的3×3阶魔方阵,做出某种最恰当的决定,横竖都有3个格. 0的倒数 a-1可以 ...

  3. n阶奇数魔方阵c语言编程,n阶魔方阵C语言

    满意答案 ajiarenbk 2013.11.09 采纳率:56%    等级:12 已帮助:5086人 /*15 阶内奇数魔方阵C程序*/ #include main() { int a[16][1 ...

  4. 4阶,8阶“魔方阵”--解析

    "魔方阵"再回首 之前看到过三阶的魔方阵,然后可以递推奇数阶.本小编做了讲解,如果有兴趣,可以翻阅以前的内容. 今天再来看看4阶8阶,递推偶数阶.魔方阵看起来难,无从下手其实经过认 ...

  5. java构建n阶魔方方阵

    package dataStructure; import java.util.Arrays; import java.util.Scanner;/** 构造魔方方阵*/ public class M ...

  6. n*n阶魔方阵c语言程序,N阶幻方入门算法及图解

    幻方(Magic Square)1是一种将数字安排在正方形格子中,使每行.列和对角线上的数字和都相等的方法. 幻方有3种不同解法,分别对应于奇数阶, 4*m阶,以及4*m+2阶. 注:部分代码来源网络 ...

  7. C语言 打印5阶魔方阵

    Ⅰ)魔方阵介绍      魔方阵,古代又称"纵横图",是指由自然数组成方阵,方阵的每个元素都不想等,且每行.每列以及主.副对角线上各n个元素之和都相等. Ⅱ)魔方阵举例     3 ...

  8. Java 计算奇数偶数

    开发工具与关键技术:Myeclipse 10,Java 作者:刘俊杰 撰写时间:2019年04月26日 今天讲的是用for循环和while循环,分别计算出100数值以内的奇数和偶数. 计算数值的奇数和 ...

  9. java魔方阵_魔方阵 Java实现转载

    49.Algorithm Gossip: 奇数魔方阵 说明 将1到n(为奇数)的数字排列在nxn的方阵上,且各行.各列与各对角线的和必须相同,如下所示: 解法 填魔术方阵的方法以奇数最为简单,第一个数 ...

最新文章

  1. 大话设计模式(十四 设计模式不能戏说!设计模式怎就不能戏说?)
  2. -f shell 模糊匹配_生产力工具:shell 与 Bash 脚本
  3. PCL库VTK显示点云法向时出错:no override found for vtkActor
  4. centos7.2源码安装openssl1.0.2
  5. android 百度地图3.0定位,Android 百度地圖 SDK v3.0.0 (二) 定位與結合方向傳感器...
  6. Win11系统如何解除网络限制
  7. 第29课 布纳特老师出的难题 《小学生C++趣味编程》
  8. quartus仿真30:D触发器构成的可重复序列111探测器
  9. Visual Basic的调试和错误处理
  10. apache server和tomcat集群配置一:水平负载
  11. ios 企业签名需要源文件么_苹果ios企业签名是什么?苹果ios企业签名了解一下!...
  12. FIT2CLOUD入选2018 Gartner Cool Vendor
  13. c语言用if分解三位数,c语言if语句练习题.doc
  14. zabbix Too many processes on xxx
  15. 网站站长统计分析CNZZ
  16. 那是什么进程 —— svchost.exe是什么? 它为何运行?
  17. 双模控制器很耗电_电动车双模控制器什么意思
  18. EIGRP特点包括:
  19. 将腾讯视频Qlv格式转为MP4格式(亲测可用)
  20. 江西计算机在职博士2020考试,江西在职研究生报名时间2020

热门文章

  1. php的$_server例子,php全局变量$_SERVER的四个例子
  2. 深度强化学习-Policy Gradient基本实现
  3. 计算机视觉实习面经【微软/阿里/腾讯】
  4. Tensorflow实践:用神经网络训练分类器
  5. 理解Hinton的Capsule Networks1
  6. php 获取视频首帧,从视频中提取特定帧的最快方法(PHP/ffmpeg/anything)
  7. Can't load AMD 64-bit .dll on a IA 32-bit platform
  8. 搞定Server 2008蓝牙问题
  9. 关于信噪比-draft
  10. linux系统中-E,-S,-c的区别和作用(怎么讲代码转化为机器识别的语言)