打印5阶幻方

本文介绍了5阶幻方的定义,即矩阵中每一行、每一列及两条对角线上的数字和都相等。遵循特定规律,首先将数字1置于第一行中间一列,然后从2开始,每个数字按行减1、列加1的规则放置。当列数达到5时转到下一行,行数为1时转到下一行并加1列。如果预定位置已被占用,数字则放置在前一个数字下方。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

5阶幻方定义:
矩阵的每一行,每一列的和,都与对角线之和相等

5阶幻方规律如下:
第一步:将1放在第一行中间一列
第二步:从2开始到25各个数字都依次按如下规则存放:每一个数存放的行减1,列数加1
ps:上一个数列数为5时,下一个数列数为1,行数减1;
ps:  上一个数行数为1时,下一个数行数为5,列数加1;
ps:如果按上述步骤确定的位置已经被占,或者上一个数在a[1][5]时(特殊情况),把下一个数放到上一个数下面。

#include <iostream>

using namespace std;

int main()
{
    int row = 1, col = 3,a[6][6] = {0};

    for(int i = 1; i <= 25;++i)
    {
        a[row][col] = i;
        
        if(row == 1&& col == 5)    //改变下一个数字的位置
        {
            ++row;
            continue;
        }
        else
        {
            if(row == 1)
               row = 5;
            else
                --row;
            if(col == 5)
                col = 1;
            else
                ++col;
        }
        
        if(a[row][col] != 0)  //如果下一个的位置已经被占 则...
        {
            row += 2;
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值