我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

魔方阵说明:

  • 魔方阵是一个N*N的矩阵;
  • 该矩阵每一行,每一列,对角线之和都相等;

魔方阵示例:

三阶魔方阵:

8   1   6

3   5   7

4   9   2

每一行之和:

8+1+6=15;

3+5+7=15;

4+9+2=15;

每一列之和:

8+3+4=15;

1+5+9=15;

6+7+2=15;

对角线之和:

8+5+2=15;

6+5+4=15;

魔方阵计算规律(行,列以1开始):

1.将"1"放在行,中间一列;

2.从2开始至N*N各数按如下规律: 每一个数存放的行比上一个数的行减1;每一个数存放的列比上一个数的列加1;

3.当一个数行为1,下一个数行为N;

4.当一个数列数为N,下一个数列数为1,行数减1;

5.若按上述规则确定的位置有数字,或上一个数位第1行第N列,

下一个数字位置为上一个数的正下方(即行数减1,列数不变);

源代码

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define N 5

int main()
{
    int a[N][N] = {0};
    int count = 1;
    int row = 0, cul = N / 2;
    while (count <= N*N)
    {
        a[row][cul] = count;
        int i = row;
        int j = cul;
        if (i == 0)
        {
            i = N - 1;
        }
        else
        {
            i = i - 1;
        }
        j = (j + 1) % N;
        if (a[i][j]!=0||(row==0&&cul==N-1))
        {
            i = row + 1;
            j = cul;
        }
        row = i;
        cul = j;
        count++;
    }

    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
        {
            printf("%3d",a[i][j]);
        }
        printf("\n");
    }

    system("pause");
}
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为1000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设网站改版百度优化、名注册、主机空间、手机网站建设公众号开发小程序制作、网站备案等方面的需求...
请立即点击咨询我们或拨打咨询热线: 13820372851,我们会详细为你一一解答你心中的疑难。项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13820372851

上班时间

周一到周五

公司电话

022-26262675

二维码
线
在线留言