Python快速编程入门5.4.2 神奇魔方阵 实训文档.docxVIP

Python快速编程入门5.4.2 神奇魔方阵 实训文档.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-4000 5.4.2神奇魔方阵 魔方阵又称纵横图,是一种n行n列、由自然数1~n×n组成的方阵,该方阵中的数符合以下规律: 方阵中的每个元素都不相等。 每行、每列以及主、副对角线上的个元素之和都相等。 本案例要求编写程序,输出一个5行5列的魔方阵。 实例目标 通过完成本实例,读者应掌握以下知识或技能: 熟练地使用列表推导式创建列表 熟练访问列表的元素 实例分析 下面先看如下的3*3的魔方阵: ?8 1   6?   3   5   7?   4   9   2? 观察以上的魔方阵,可以得出如下规律: 1位于第1行的中间一列; 2~n*n之间的各数字依次按下列规律放置:每个数所放置的行数比前一个数的行数少1,列数比前一个数的列数多1。例如,5位于4的上一行、后一列。 若前一个数字的行数为1,则后一个数的行数为n(最后一行)。例如,1位于第一行、中间一列,2位于最后一行、最后一列。 若前一个数的列数为n,则后一个数的列数为1。例如,2位于第n列,3位于第1列。 若按照上面的规则放置时某位置上已经有数字,或者前一个数字位于第1行、第n列,则将后一个数放置到前一个数字的下方。例如,4按上面的规则应被放置于第1行、第2列,但因为该位置已被其他数字1占据,所以被放置于数字3的下方。 本实例可按照以上规律实现一个5行5列的魔方阵,也就是说将1~25分别填写到方阵的前一个某位置上。我们可以先创建一个嵌套5个列表元素的列表,其中每个列表元素对应魔方阵的一行数据。 代码实现 n = 5 # 5*5二维列表 magic_square = [[0 for x in range(n)] for y in range(n)] i = n / 2 j = n – 1 num = 1 while num = (n * n): if i == -1 and j == n: j = n – 2 i = 0 else: if j == n: j = 0 if i 0: i = n – 1 if magic_square[int(i)][int(j)]: j = j – 2 i = i + 1 continue else: magic_square[int(i)][int(j)] = num num = num + 1 j = j + 1 i = i – 1 for i in range(0, n): for j in range(0, n): print(%2d % (magic_square[i][j]),end=) if j == n - 1: print() 代码测试 运行代码,结果如下所示: 9 3 22 16 15 2 21 20 14 8 25 19 13 7 1 18 12 6 5 24 11 10 4 23 17

文档评论(0)

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

人力资源管理师、教师资格证持证人

该用户很懒,什么也没介绍

版权声明书
用户编号:6152114224000010
领域认证该用户于2024年03月13日上传了人力资源管理师、教师资格证

1亿VIP精品文档

相关文档