偶阶魔方阵的实现步骤:

1.用横线和竖线将n阶方阵划分为m个4*4的小方阵;

2.将n*n个数从小到大,从左到右,从上到下依次填入方阵中,遇到4*4小方阵的对角线不填(此位置不填的数不作为下一个位置填入的数)

3.将n*n个数从大到小,从左到右,从上到下依次填入方阵中4*4小方阵的对角线上,其他位置不填(此位置不填的数不作为下一个位置填入的数)

4.偶阶魔方阵完成。

下面进行图解(以8阶为例):

                     

                  

代码实现的时候会遇到如何判断对角线的问题,我们来找一找对角线的规律:

//偶数阶魔方阵
//重点:对角线的计算
//左上到右下对角线满足i%4 == j%4
//右上到左下对角线满足(i+j)%4 == 3void MagicSquare()
{
#define ROW 4
#define COL ROWint arr[ROW][COL];int tmp1 = 1;int tmp2 = ROW*COL;for(int i = 0;i < ROW;i++){for(int j = 0;j < COL;j++){if(i % 4 == j % 4 || (i + j) % 4 == 3){arr[i][j] = tmp2;}else{arr[i][j] = tmp1;}tmp2--;tmp1++;}}for(int i = 0;i < ROW;i++){for(int j = 0;j < COL;j++){printf("%-4d",arr[i][j]);}printf("\n");}
}int main()
{MagicSquare();return 0;
}

C语言:偶数阶魔方阵的实现(四的倍数)相关推荐

  1. 3阶魔方阵c语言算法,3阶魔方阵的算法

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include "stdlib.h" #include "stdio.h" int main() { int a ...

  2. 三阶魔方c语言算法最高效率算法,3阶魔方阵的算法

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include "stdlib.h" #include "stdio.h" int main() { int a ...

  3. 奇数阶魔方阵算法分析

    奇数阶魔方阵就是指行列数都是吧n(n>=3 且 n%2 == 1)的魔方阵 奇数阶魔方阵的数字规律 通过对奇数阶魔方阵的分析,其中的数字排列有如下的规律: (1)自然数1出现在第一行的正中间: ...

  4. 奇数阶魔方阵(洛书)

    奇数阶魔方阵(洛书) 题目: 将1~n的数子排列在n*n的方阵上,要求数子不能重复,方阵各行.各列.及两条对角线的数子之和相等.此位魔方阵,又称洛书(洛书是九行九列).若n为奇数,则为奇数阶魔方阵. ...

  5. 任意阶魔方阵matlab程序,【精品】任意阶魔方阵算法(c语言)

    n阶幻方是由前n^2(n的2次方)个自然数组成的一个n阶方阵,其各行.各列及两条对角线所含的n个数的和相等.洛书就是最基本的3×3阶魔方阵,做出某种最恰当的决定,横竖都有3个格. 0的倒数 a-1可以 ...

  6. 5阶魔方阵c语言程序设计,五阶魔方阵源代码c语言课到程设计.docx

    五阶魔方阵源代码c语言课到程设计 主函数 #include #include #include # include "wenjian.c" # include "sanj ...

  7. 5阶魔方阵c语言程序设计,五阶魔方阵源代码c语言时课程设计.docx

    五阶魔方阵源代码c语言时课程设计 主函数 #include #include #include # include "wenjian.c" # include "sanj ...

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

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

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

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

最新文章

  1. c语言随机浮点数,C随机浮点数生成
  2. OncePerRequestFilter-源码解析
  3. NOIP 2007 普及组初赛试题(C++)(含答案)
  4. Numpy 笔记: 多维数组的切片(slicing)和索引(indexing)【转】
  5. plsql提示列快捷键_20种VSCode快捷键清单,助你更快编码
  6. Windows Mobile中的WebService应用
  7. 手摸手Go 深入剖析sync.Pool
  8. php 递归穿件文件夹,PHP递归复制整个文件夹
  9. Hybrid和Tagged Untagged理解
  10. SM2算法和RSA算法简介
  11. 如何在HTML中添加背景音乐?
  12. 预防服务器被攻击的处理方式
  13. 产品经理与项目经理-从PMP到NPDP
  14. javax.el.PropertyNotFoundException:类型[com.ex.spring.entity.Dept]上找不到属性[dNo]
  15. 2021年三季度中国家居用品行业A股上市企业营收排行榜:欧派家居、顾家家居排名前2位,且近五年第三季度的净利润均逐年递增(附热榜TOP61详单)
  16. C语言字符串转换为整数
  17. Bilibili漫画抓取思路
  18. 颐和园文昌阁的命名由来
  19. 微信支付-电商收付通开发-04.支付
  20. 关于网易云验证码V1.0版本的服务介绍

热门文章

  1. python怎么退出执行/退出程序语句
  2. 电脑下载到流氓软件后怎么办?超详细教学!
  3. 大学生学计算机专业开学要带电脑吗,大学新生刚开学需要带电脑吗
  4. JQuery--事件总结
  5. 财神爷商训---范蠡
  6. 一个链表不知道头结点,有一个指针指向其中一个结点,请问如何删除这个指针指向的结点
  7. (一)我要偷偷学习html,然后惊艳我们班的人!(标签学习)
  8. 集合:求A、B两个集合的交集、并集和补集的代码(C语言)
  9. 开发一个简单APP的流程及记事本案例(Android Studio)
  10. 明日方舟统计寻访工具【附下载链接】