所谓单偶阶幻方就是当n不可以被4整除时的偶阶幻方,即4K+2阶幻方。如(n=6,10,14……)的幻方。 单偶数阶幻方最经典的填法是斯特拉兹法。填写的方法是: 以10阶幻方为例。这时,k=2。 (1)把魔方阵分为A,B,C,D四个象限,这样每一个象限肯定是奇数阶。用罗伯法,依次在A象限,D象限,B象限,C象限按奇数阶...
幻方(Magic Square)是一种将数字安排在正方形格子中,使每行、列和对角线上的数字和都相等的方法。 // 求取奇数阶幻方矩阵// 求取奇数阶幻方矩阵#include<stdio.h>#definenums 100inta[nums][nums];voidget_magicsquares(intn){if(n %2==0)return;//如果是偶数,终止函数inti,j; i =1; j = (1+n)...
一、幻方按照阶数可分成了三类,即奇数阶幻方、双偶阶幻方、单偶阶幻方。 二、奇数阶幻方(劳伯法) 奇数阶幻方最经典的填法是罗伯法。填写的方法是: 把1(或最小的数)放在第一行正中;按以下规律排列剩下的(n×n-1)个数: (1)每一个数放在前一个数的右上一格; (2)如果这个数所要放的格已经超出了顶行...
C语言代码如下: #include<stdio.h>intmain(){intn=11,sum=0;//确定要生成n阶幻方intarr[11][11]={0};//定义二维n数组,所有值为0,数组长度要和n相等//分三种情况,奇数幻方,单偶数幻方,双偶数幻方if(n%2!=0){//奇数幻方,罗伯法//性质:第一行最中间数为1,最中间数为(n^2+1)/2,和为n(n^2...
奇阶幻方比偶阶幻方简单一些(这次实验只讨论奇数幻方)。幻方的规则就是它每一行和每一列的和及两条对角线的和要相等,每列,每行,每条对角线的和称之为幻和。这样你排出来的才叫 2、幻方,否则没有条理,那样就没有意义了。幻方中所排的数就是从1开始到n的平方结束。【幻方要运用到数组的知识、循环体结构等...
二维数组:奇数阶魔方 幻方,有时又称魔方,由一组排放在正方形中的整数组成,其每行、每列以及两条对角线上的数之和均相等。通常幻方由从到的连续整数组成。 Siamese方法(Kraitchik 1942年,pp. 148-149)是构造奇数阶幻方的一种方法,说明如下: 1)把1放置在第一行的中间...
奇数阶幻方有如下填法:(1) 将1放在第一行中间一列;(2) 从2开始直到n×n止各数依次按下列规则存放:当k(从2开始)填好后,若k的右上方空,则把k+1填在右上方,否则,把k+1填在k的下方;(3) 如果行列范围超出矩阵范围,则回绕 最左列视作在最右列的右方,把最底行视作在最顶行的上方...
幻方可分为奇阶幻方和偶阶幻方,同时偶阶幻方又可以分为双偶阶和单偶阶(所谓双偶阶就是指 N 能被 4 整除,单偶阶就是指能被 2 整除但不能被 4 整除) 。奇阶幻方比偶阶幻方简单一些(这次实验只讨论奇数幻方) 。幻方的规则就是它每一行和每一列的和及两条对角线的和要相等,每列,每行,每条对角线的和...
因为你是通过用户输入的方式确定幻方的阶数,而定义二维数组的维数必须是一个常数,不能是n这个变量,要么你就在程序中规定二维数组的大小,这个可以用宏定义规定n大小,#define n x,x是一个确定的常数 第二种方法是将数组变成二维动态数组如下所示 int **p;p=new int*[n];for(int i=0;i<n;i...
编写三阶幻方主要针对奇数阶,偶数阶则有不同规律。以三阶幻方为例,其规律如下:奇数阶幻方中,数1位于第一行的正中央(1行2列)。接着,数的移动遵循上一行下一列的规则。如果该位置已满,则移动到最底行的对应列。以此类推,重复操作直至完成幻方构建。具体步骤可归纳为:从数1开始,移动方向...