魔术方阵问题

魔术方阵问题

ID:46598930

大小:134.50 KB

页数:12页

时间:2019-11-26

魔术方阵问题_第1页
魔术方阵问题_第2页
魔术方阵问题_第3页
魔术方阵问题_第4页
魔术方阵问题_第5页
资源描述:

《魔术方阵问题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、魔术方阵魔术方阵意义:往一个n为奇数的n×n的魔术方阵中填入1到n2的整数,能使其各列、各行及对角线之和皆相等。魔术方阵的规则:规则很简单,首先将1填入最上列的中间格,然后往左上方走,(1)以1的级数增加其值,并将此值填入空格;(2)假使方格已填满,则在原地的下一方格填上数字,并继续做;(3)若超出方阵,则往下到最底层或往右到最右方,看两者哪一个有方格,即将数字填入此方格;(4)若两者皆无方格,则在原地的下一方格填上数字。魔术方阵形成的步骤——例例如有一5×5的方阵,其形成魔术方阵的步骤如下,并以上述(1)、

2、(2)、(3)、(4)规则来说明:A、将1填入此方阵最上列的中间方格,如图2-6所示。B、承A往左上方走,由于超出方阵,依据规则(3)发现往下的最底层有空格,因此将2填上,如图2-7所示。图2-6插入1后的魔术方阵图图2-7插入2后的魔术方阵图魔术方阵形成的步骤——例例如有一5×5的方阵,其形成魔术方阵的步骤如下,并以上述(1)、(2)、(3)、(4)规则来说明:C、承B往左上方,依据规则(1)将3填上,然后再往左上方,此时,超出方阵,依据规则(3)将4填入最右方的方格,如图2-8所示。D、承3)往左上方,依

3、据规则(1)将5填上,再往左上方时,此处方格已有数字,依据规则(2)往5的下方填,如图2-9所示。图2-8插入3后的魔术方阵图图2-9插入4后的魔术方阵图魔术方阵形成的步骤——例例如有一5×5的方阵,其形成魔术方阵的步骤如下,并以上述(1)、(2)、(3)、(4)规则来说明:E、依此类推,依据上述4个规则继续填,填到15的结果如图2-10所示。F、承E此时往左上方,发现往下的最底层和往右的最右方皆有空格,依据规则(4)在原地的下方,将此数字填上,如图2-11所示。图2-10插入15后的魔术方阵图图2-11插入

4、16后的魔术方阵图魔术方阵形成的步骤——例例如有一5×5的方阵,其形成魔术方阵的步骤如下,并以上述(1)、(2)、(3)、(4)规则来说明:G、继续往下填,并依据规则(1)、(2)、(3)、(4),最后的结果如图2-12所示。图2-12最终的魔术方阵图此时我们可以算算各行、各列及对角线之和是否皆相等,答案是肯定的,其和都是65。魔术方阵——程序段/*filename:OddMagic.cDescription:ODDMagicMatrixImplementation奇数魔术方阵实例*/#include

5、io.h>#defineMAX15/*矩阵最大为15×15*/intSquare[MAX][MAX];/*定义整数矩阵*/intN;/*矩阵行列大小变量*/魔术方阵——程序段(续1)voidMagic();voidmain(){inti,j;/*读取魔术矩阵的大小N,N为奇数且0<=N<=15*/do{printf("Enteroddmatrixsize:");scanf("%d",&N);if(N%2==0

6、

7、N<=0

8、

9、N>15)printf("Shouldbe>0and<15oddnumber");

10、else魔术方阵——程序段(续2)break;}while(1);Magic();/*将square变为N×N的魔术矩阵*//*显示魔术矩阵结果*/printf("The%d*%dMagicMatrix",N,N);printf("-------------------------");for(i=0;i

11、p,q,key;/*初始化矩阵内容,矩阵全部清0*/for(i=0;i

12、1(最下列)*/if(q<0)q=N-1;/*q<0(超出方阵左方)*//*则将q移至N–1(最右行)*/if(Square[p][q]!=0)/*判断下一步是否已有数字*/i=(i+1)%N;/*已有则i往下,填在原值下方*/else{i=p;/*将当前位置移到下一步位置*/魔术方阵——程序段(续5)j=q;}Square[i][j]=key;key++;}}输出结果:Enteroddmatrix

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。