魔术方阵问题﹝冲突STEVEN-PC2006-08-0308-39-58﹞.pptVIP

魔术方阵问题﹝冲突STEVEN-PC2006-08-0308-39-58﹞.ppt

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
魔术方阵问题﹝冲突STEVEN-PC2006-08-0308-39-58﹞

魔术方阵 魔术方阵意义: 往一个n为奇数的n×n的魔术方阵中填入1到n2的整数,能使其各列、 各行及对角线之和皆相等。 魔术方阵形成的步骤——例 例如有一5×5的方阵,其形成魔术方阵的步骤如下,并以上述(1)、(2)、(3)、(4)规则来说明: 魔术方阵形成的步骤——例 例如有一5×5的方阵,其形成魔术方阵的步骤如下,并以上述(1)、(2)、(3)、(4)规则来说明: 魔术方阵形成的步骤——例 例如有一5×5的方阵,其形成魔术方阵的步骤如下,并以上述(1)、(2)、(3)、(4)规则来说明: 魔术方阵形成的步骤——例 例如有一5×5的方阵,其形成魔术方阵的步骤如下,并以上述(1)、(2)、(3)、(4)规则来说明: 魔术方阵——程序段 /* file name : OddMagic.c Description : ODD Magic Matrix Implementation 奇数魔术方阵实例 */ ? #include stdio.h #define MAX 15 /*矩阵最大为15×15 */ int Square[MAX][MAX]; /*定义整数矩阵*/ int N; /*矩阵行列大小变量*/ 魔术方阵——程序段(续1) void Magic(); void main() { int i,j; ? /*读取魔术矩阵的大小N,N 为奇数且0 = N = 15 */ do { printf(\nEnter odd matrix size : ); scanf(%d,N); if ( N % 2 == 0 || N= 0 || N 15) printf(Should be 0 and 15 odd number); else 魔术方阵——程序段(续2) break; } while (1); ? Magic(); /*将square 变为N×N的魔术矩阵*/ /*显示魔术矩阵结果*/ printf(\nThe %d*%d Magic Matrix\n,N,N); printf(-------------------------\n); for ( i = 0; i N; i++ ) { for ( j = 0; j N; j++ ) printf(%3d,Square[i][j]); printf(\n); } } 魔术方阵——程序段(续3) void Magic() { int i,j,p,q,key; ? /*初始化矩阵内容,矩阵全部清0 */ for ( i = 0; i N; i++ ) for ( j = 0; j N; j++ ) Square[i][j] = 0; ? Square[0][(N -1) /2] = 1; /*将1放至最上列中间位置*/ key = 2; i = 0; j = (N-1) / 2; /* i,j记录目前所在位置*/ 魔术方阵——程序段(续4) while ( key = N*N ) { p = (i-1) % N; /* p,q为下一步位置,i,j各减1表往西北角移动*/ q = ( j-1) % N; /* p 0 (超出方阵上方)*/ if ( p 0 ) p = N - 1; /* 则将p 移至N-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++; } } 输出结果: Enter odd matrix size : 5

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档