魔方阵 实验报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
<< 魔方阵>>实验报告
一.实验目的
1.设计数据结构;
2.设计算法完成任意n阶魔方阵的填数;
3.分析算法的时间复杂度。
二.实验内容
魔方阵,又叫幻方阵,在我国古代称为“纵横图”。它是在一个n*n的矩阵中填入1到n*n的数字(n为奇数),使得每一行,每一列,每条对角线的累加和都相等。
三.程序代码
源程序:
#include
void Square(int n)
{ int a[9][9];
int p=0, q=(n-1)/2;
a[0][q]=1; //在第0行的中间位置填1
for (int i=2; i<=n*n; i++)
{
p=(p-1+n) % n; //求i所在行号
q=(q-1+n) % n; //求i所在列号
if (a[p][q]>0)
{
p=(p+2)%n; q=(q+1)%n; //这两句进行了修改,否者得不到正确的答案,切记切记!!!!
}//如果位置(p, q)已经有数,填入同一列下一行
a[p][q]=i;
}