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...
所谓单偶阶幻方就是当n不可以被4整除时的偶阶幻方,即4K+2阶幻方。如(n=6,10,14……)的幻方。 单偶数阶幻方最经典的填法是斯特拉兹法。填写的方法是: 以10阶幻方为例。这时,k=2。 (1)把魔方阵分为A,B,C,D四个象限,这样每一个象限肯定是奇数阶。用罗伯法,依次在A象限,D象限,B象限,C象限按奇数阶...
C生成奇数阶幻方矩阵 幻方(Magic Square)是一种将数字安排在正方形格子中,使每行、列和对角线上的数字和都相等的方法。 // 求取奇数阶幻方矩阵// 求取奇数阶幻方矩阵#include<stdio.h>#definenums 100inta[nums][nums];voidget_magicsquares(intn){if(n %2==0)return;//如果是偶数,终止函数inti,j; i...
//printf("data=%d,m=%d,k=%d\n ",data,m,k); p=m-1;//上 q=k+1;//右 if(p<0&&q<n&&q>=0){//上出框 //printf("qian shang chu: p=%d,q=%d\n",p,q); p=n-1;//下边放 //printf("hou shang chu: p=%d,q=%d\n",p,q); ...
编写三阶幻方主要针对奇数阶,偶数阶则有不同规律。以三阶幻方为例,其规律如下:奇数阶幻方中,数1位于第一行的正中央(1行2列)。接着,数的移动遵循上一行下一列的规则。如果该位置已满,则移动到最底行的对应列。以此类推,重复操作直至完成幻方构建。具体步骤可归纳为:从数1开始,移动方向...
一、幻方按照阶数可分成了三类,即奇数阶幻方、双偶阶幻方、单偶阶幻方。 二、奇数阶幻方(劳伯法) 奇数阶幻方最经典的填法是罗伯法。填写的方法是: 把1(或最小的数)放在第一行正中;按以下规律排列剩下的(n×n-1)个数: (1)每一个数放在前一个数的右上一格; (2)如果这个数所要放的格已经超出了顶行...
二维数组:奇数阶魔方 幻方,有时又称魔方,由一组排放在正方形中的整数组成,其每行、每列以及两条对角线上的数之和均相等。通常幻方由从到的连续整数组成。 Siamese方法(Kraitchik 1942年,pp. 148-149)是构造奇数阶幻方的一种方法,说明如下: 1)把1放置在第一行的中间...
C语言算法设计之奇数魔方阵 将1到n(为奇数)的数字排列在nxn的方阵上,且各行、各列与各对角线的和必须相同,如下所 示: 填魔术方阵的方法以奇数最为简单,第一个数字放在第一行第一列的正中央,然后向右(左)上填,如果右(左)上已有数字,则向下填,如下图所示:...
C语言填幻方 下面的够详细了吧 奇阶幻方 当n为奇数时,我们称幻方为奇阶幻方。可以用Merzirac法与loubere法实现,根据我的研究,发现用国际象棋之马步也可构造出更为神奇的奇幻方,故命名为horse法。 偶阶幻方 当n为偶数时,我们称幻方为偶阶幻方。当n可以被4整除时,我们称该偶阶幻方为双偶幻方;当n不可...
1、奇数阶 2、双偶阶 3、单偶阶 三种。 对于奇数阶的幻方: /*** n为奇数 (n=3,5,7,9,11……) (n=2×k+1,k=1,2,3,4,5……) 奇数阶幻方最经典的填法是罗伯特法(也有人称之为楼梯法)。填写方法是这样: 把1(或最小的数)放在第...