给出一个奇数幻方的解

本文介绍了幻方问题的基本概念,重点阐述了de la Loubere构造奇数阶幻方的详细步骤。通过将1放置在第一行中间开始,遵循特定的填充规则,如遇到边界条件时如何调整,来确保每一行、每一列及对角线上的数字和相等。
摘要由CSDN通过智能技术生成

幻方问题

将1,2,…,n的平方个整数填入n*n的棋盘中,是每行每列及两条对角线上的元素之后均相等,满足上述条件的一个安排称为一个n阶幻方。

de la Loubere构造奇数阶幻方的方法

首先将1放入第一行的中间位置上;若i已填入,则除了以下几种特殊情况外,将i+1填入i所在位置的右边一列的上一行:

  1. 若i在第一行,则将i+1填入i所在位置的右边一列的底行
  2. 若i在最后一列,则将i+1填入i的上一行的第一列
  3. 若i在第一行的最后一列或i+1该填的位置已经被填上,则i+1直接填入i所在位置的正下方。
/*
 * @author 七印miss
 * @time 9/17/2015
 * @detail 给出一个奇数幻方的解
*/

#include <iostream>
#include <iomanip>

#define N 7     // 必须为奇数

using namespace std;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值