这里我们要输入一个正整数N,而输出的则是2N-1的方阵,形式如上图。

当我们第一次见到这种题时我们想到的第一种解法可能是翻折,很明显方阵可以分为四个面积相等的方阵,然后四个方阵完全相同,这就意味着四个方阵对称,我们可以将左上角的方阵打出来后进行翻折,最终就能成为我们所需要的方阵,但这样程序未免有些过于复杂。

这里采用一种新的思路:方阵覆盖。

仔细观察方阵,如3阶方阵,我们可以看成,第一步先将方阵全部赋值为1,第二步,从第2列第2行到,第4行所覆盖的方阵赋值为2,最后第三行第三列的方阵赋值为3。这就实现了方阵的覆盖。不论怎么覆盖,边界之和一定为2N,如2到4行,3到3行,1到5行,两数之和一定为2N。

有了这个思路,我们就可以开始编写程序了,我们这里采用二维数组进行操作:

这种方法,不仅程序简单,思路也很简单,但就是难以想到,程序可以不断优化,方法也是可以不断优化的。

一种特殊的魔方阵解法相关推荐

  1. 魔方阵的实现(三种情况)

    魔方阵:把1到n*n排成n行n列方阵,使方阵中的每一行.每一列以及对角线上的数之和都相同,即为n阶魔方阵. 根据魔方阵的规律,我将它分为三种情况. 1.奇数阶魔方阵  规律:第一个数放在第一行的中间, ...

  2. 糟蹋好题——魔方阵问题

    转自:http://www.cnblogs.com/pmer/archive/2012/04/02/2429870.html 糟蹋好题--魔方阵问题 输出"魔方阵".所谓魔方阵是指 ...

  3. 用c语言输出魔方阵答案,如何用C语言输出一个1—16 组成的4*4的魔方阵

    int b,c,d,e,f; printf("请输入魔方阵的阶数:"); scanf("%d",&b); e=b/2; d=0; for(c=1;c&l ...

  4. 1180魔方阵(每日学习)宁波大学OJ

    题目描述 输出魔方阵,所谓魔方阵就是指这样的方阵,它的每一行每一列和对角线之和都相等,例如,三阶魔方阵为 8 1 6 3 5 7 4 9 2 要求输出由1-n^2之间的自然数构成的魔方阵. 输入要求 ...

  5. 判断魔方阵c语言程序设计_魔方阵算法及C语言实现

    1 魔方阵概念 2填充的,每一行.每一列.对角线之和均相等的方阵,阶数n = 3,4,5-.魔方阵也称为幻方阵. 例如三阶魔方阵为: 魔方阵有什么的规律呢? 魔方阵分为奇幻方和偶幻方.而偶幻方又分为是 ...

  6. c语言魔方还原程序案例,利用C语言玩转魔方阵实例教程

    魔方阵 魔方阵,古代又称"纵横图",是指组成元素为自然数1.2-n的平方的n×n的方阵,其中每个元素值都不相等,且每行.每列以及主.副对角线上各n个元素之和都相等. 如3×3的魔方 ...

  7. python实现神奇魔方阵(纵横图)

    #练习:实现n行n列的神奇魔方阵: #神奇魔方阵又称纵横图,一种n行n列,由自然数1至n*n组成的方阵 #方阵中每个元素都不相等 #每行,每列以及对角线,副对角线元素之和相等 #第一行最中间的位置为数 ...

  8. java魔方阵_魔方阵 Java实现转载

    49.Algorithm Gossip: 奇数魔方阵 说明 将1到n(为奇数)的数字排列在nxn的方阵上,且各行.各列与各对角线的和必须相同,如下所示: 解法 填魔术方阵的方法以奇数最为简单,第一个数 ...

  9. 重温c语言 谭浩强 输出魔方阵 目前只做了基数魔方 以及 双偶幻方,单偶同理

    基数魔方阵 1>第一行中间位取值1 2>然后 后面的n*n -1 个数按以下规则 下一个数是前一个数的  行-1 列 +1  若是行是0 则为n-1:若列是n-1,则为0:若定位后的pos ...

  10. 11-Little prince's trip to Java-偶数魔方阵之双偶魔方阵

    偶数魔方阵分为两种:① 双偶魔方阵 ② 单偶魔方阵 双偶魔方阵 n为偶数,且能被4整除 (n=4,8,12,16,20--) (n=4k,k=1,2,3,4,5--) 阶数为4时: 互补:如果两个数字 ...

最新文章

  1. 如何制作一个通用的多系统安装U盘七(Windows相关配置)
  2. vue输入框联想词功能
  3. selenium3 + python - cookie定位
  4. 变化的你--写给宝宝
  5. c语言堆栈基本代码入栈出栈_C/C++语言栈的出栈入栈操作实现(完整代码)
  6. npm在项目目录安装插件需要使用sudo
  7. 在html中单选选择器,已选中单选按钮标签的CSS选择器
  8. bzoj 4447 小凸解密码
  9. java if 并列_Java 并列if语句,一个判断失败后,后面的if就不执行了,为什么啊?...
  10. HDU1328 ZOJ1240 IBM Minus One【水题】
  11. 使用树莓派3获取CPU温度
  12. 无IDE时,使用支持HTML5的浏览器作编辑器的方法
  13. GoF的23种设计模式分类概念
  14. spring5教程(一)——Overview
  15. 看完电影《门锁》感觉脊背发凉,智慧园区带来安全感
  16. mysql em_Python在主体Emai中发送MySQL查询
  17. 如何旋转PDF文件页面,一分钟教你学会
  18. GPU服务器中安装CUDA
  19. 51Nod-1298 圆与三角形
  20. 学习Java虚拟机的正确的姿势?

热门文章

  1. 感恩—父亲节、母亲节由来及日期
  2. 三丈红尘,八千里风月
  3. 关键词细分优化的策略方法
  4. PC软件-实用工具 True Launch Bar
  5. 总结:linux运维常用命令
  6. java mediatype属性_Java MediaType.MULTIPART_FORM_DATA_TYPE属性代码示例
  7. office安装找不到office.zh cn的解决办法
  8. 谷歌怎么设置下载位置
  9. HTML5 codecademy
  10. 张学友1/2世纪演唱会巡演日程、曲目及新闻汇总