奇数阶魔方阵(洛书)

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

解题方法:洛书的排列规律如下:
⑴将1放在第一行中间一列;
⑵从2开始直到n×n止各数依次按下列规则存放;每一个数存放的行比前一个数的行数减1,列数加1(例如上面的三阶魔方阵,5在4的上一行后一列);
⑶如果上一个数的行数为1,则下一个数的行数为n(指最下一行);例如1在第一行,则2应放在最下一行,列数同样加1;
⑷当上一个数的列数为n时,下一个数的列数应为1,行数减去1。例如2在第3行最后一列,则3应放在第二行第一列;
⑸如果按上面规则确定的位置上已有数,或上一个数是第一行第n列时,则把下一个数放在上一个数的下面。例如按上面的规定,4应该放在第1行第2列,但该位置已经被占据,所以4就放在3的下面。
综合上述规则,我们发现:若数子除以n的余数为一,则他必定填在上一个数的下边

#include <iostream>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#define maxnum 16
using namespace std;int main()
{int key,i,j,n;int square[maxnum][maxnum];cout<<"请输入方阵阶数:(必须是奇数且小于等于15)"<<endl;cin>>n;i=0;j=(n+1)/2;for(key=1; key<=n*n; key++){if(key%n==1)//若除以n余数是1 则必定是向下填i++;else{i--;j++;if(i==0)i=n;if(j==n+1)j=1;}square[i][j]=key;}for(i=1;i<=n; i++){for(j=1;j<=n; j++)printf("%-4d",square[i][j]);cout<<endl;}return 0;
}

博客持续更新算法题目,欢迎留言交流

奇数阶魔方阵(洛书)相关推荐

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

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

  2. Matlab编程与数据类型 -- 奇数阶魔方矩阵的编程

    本微信图文详细介绍了利用Matlab实现奇数阶魔方矩阵的编程.

  3. NYOJ 734 奇数阶魔方

    奇数阶魔方 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 一个 n 阶方阵的元素是1,2,...,n^2,它的每行,每列和2条对角线上元素的和相等,这样的方阵叫魔方.n ...

  4. 杭电1998 奇数阶魔方

    奇数阶魔方 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  5. hdu 1998 奇数阶魔方 规律

    题目链接 奇数阶魔方 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total ...

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

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

  7. HDU:1998 奇数阶魔方(规律填数)

    奇数阶魔方 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

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

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

  9. 奇数阶魔方(1998)

    奇数阶魔方 原题链接: http://acm.hdu.edu.cn/showproblem.php?pid=1998 Problem Description 一个 n 阶方阵的元素是1,2,-,n^2 ...

最新文章

  1. Android webview 写入cookie的解决方法以及一些属性设置
  2. python将灰度图转换为RGB彩色图
  3. checkbox对齐排列
  4. 230. Kth Smallest Element in a BST
  5. win10搭建hadoop环境
  6. boost 静态库命名规则
  7. HIbernate二级缓存的缓存策略
  8. ADS(Advanced Design system)原理图结合板层结构仿真(MSub)及版图仿真(EM Simulation)
  9. Spark安装与配置(单机版)(保姆级教程)
  10. 杀毒软件工作原理及现有主要杀毒技术
  11. linux设备如何获取经纬度,openlayers鼠标移动获取地图经纬度格式化的两种方式
  12. ssm后台权限管理系统
  13. c#:使用面向对象的编程思想和窗体实现计算器(二目运算)
  14. 双向可控硅详细用法说明
  15. 捷客特带你盘点果粉手机壳的“鄙视链”
  16. RGB色彩模型图像/像素深度
  17. eDP接口信号组成认识
  18. mysql分组排序取每组第一条
  19. RecyclerView与ViewPager2
  20. Unreal Engin_画廊制作笔记 _003设置贴花在场景中可见

热门文章

  1. rapidssl入门ssl证书
  2. 初探人工神经网络算法
  3. On TransactionIsolation(6)RepeatableRead
  4. vb.net函数返回数组
  5. Delft3D建模+地表水环境影响评价应用教程
  6. 简易多元线性回归学习
  7. OneNET物联网平台08 MQTT产品设备发送消息到消息队列MQ
  8. 自定义marker图标(icon)
  9. 手把手教你注册itume store免费账户☆☆更新 iTunes 9 注册方法☆☆
  10. CocosCreator 屏幕适配