神奇的幻方

题目描述

幻方是一种很神奇的N∗ N矩阵:它由数字 1,2,3, … … , N ∗ N 构成,且每行、每列及两条对角线上的数字之和都相同。
当 N为奇数时,我们可以通过以下方法构建一个幻方:
首先将 1 写在第一行的中间。
之后,按如下方式从小到大依次填写每个数 K(K = 2,3, … , N ∗ N) :
1. 若 (K − 1) 在第一行但不在最后一列,则将 K填在最后一行, (K− 1) 所在列的右一列;
2. 若 (K − 1) 在最后一列但不在第一行,则将 K填在第一列, (K -1) 所在行的上一行;
3. 若 (K − 1) 在第一行最后一列,则将 K填在 (K� − 1) 的正下方;
4. 若 (K − 1) 既不在第一行,也不在最后一列,如果 (K− 1) 的右上方还未填数,
则将 K 填在(K − 1)的右上方,否则将 K 填在 (K− 1) 的正下方。
现给定 N,请按上述方法构造N*N 的幻方。

输入

输入文件名为 magic.in。
输入文件只有一行,包含一个整数 N, 即幻方的大小。

输出

输出文件名为 magic.out。
输出文件包含 N 行,每行 N 个整数,即按上述方法构造出的 N∗ N 的幻方。相邻两个整数之间用单个空格隔开。

样例输入

3

样例输出

8 1 6
3 5 7
4 9 2

提示

对于 100% 的数据, 1 ≤ N≤ 39 且 N为奇数。

代码:

 #include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int Map[][]; int main()
{
int i, j, n, k;
scanf("%d", &n);
Map[][(n + ) / ] = ;
i = ;
j = (n + ) / ;
for (k = ; k <= n * n; k++) {
if (i == && j != n) {
Map[n][j + ] = k;
i = n;
j++;
continue;
}
if (j == n && i != ) {
Map[i - ][] = k;
i--;
j = ;
continue;
}
if (i == && j == n) {
Map[i + ][j] = k;
i++;
continue;
}
if (i != && j != n) {
if (Map[i - ][j + ] == ) {
Map[i - ][j + ] = k;
i--;
j++;
}
else {
Map[i + ][j] = k;
i++;
}
}
}
for (i = ; i <= n; i++) {
for (j = ; j < n; j++) {
printf("%d ", Map[i][j]);
}
printf("%d\n", Map[i][j]);
}
return ;
}

[模拟][NOIP2015]神奇的幻方的更多相关文章

  1. 题解【洛谷P2615】[NOIP2015]神奇的幻方

    题目描述 幻方是一种很神奇的 \(N \times N\) 矩阵:它由数字 \(1,2,3,\cdots \cdots ,N \times N\) 构成,且每行.每列及两条对角线上的数字之和都相同. ...

  2. NOIP2015神奇的幻方

    题目描述 幻方是一种很神奇的 N∗N 矩阵:它由数字1,2,3,⋯⋯,N×N 构成,且每行.每列及两条对角线上的数字之和都相同. 当 N 为奇数时,我们可以通过下方法构建一个幻方: 首先将 1 写在第 ...

  3. COGS 2104. [NOIP2015]神奇的幻方

    ★   输入文件:2015magic.in   输出文件:2015magic.out   简单对比时间限制:1 s   内存限制:256 MB 模拟 一开始数组开小了.. 屠龙宝刀点击就送 #incl ...

  4. 2015 NOIP day1 t1 神奇的幻方 模拟

    神奇的幻方 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.luogu.org/problem/show?pid=2615 Descri ...

  5. NOIP2015 D1T1 神奇的幻方

    洛谷P2615 很简单的模拟题……每枚举一个点只要保存上一个点的x,y值即可,不用开数组存放 另外题目中对于K的操作都在K-1的九宫格范围内,所以我们巧妙运用++和--就可以做到每个分支一行代码 还有 ...

  6. 神奇的幻方(NOIP2015)

    先给题目链接:神奇的幻方 太水了这题,直接模拟就行,直接贴代码. #include<bits/stdc++.h> using namespace std; int main(){ int ...

  7. P2615 神奇的幻方

    P2615 神奇的幻方 题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,……,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首 ...

  8. noip2015day1 T1 4510 神奇的幻方

    4510 神奇的幻方 noip2015day1 T1  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Descripti ...

  9. 洛谷 P2615 神奇的幻方

    传送门 I'm here! 思路 这个题,我们可以直接去模拟,因为范围很小,且\(N\)都是奇数 直接构造一个矩阵,初始值都为\(0\),然后\(while\)循环,根据题目给出的\(4\)个条件进行 ...

随机推荐

  1. html client websocket

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. Nagios Email告警 发不了,可能是 /var/spool/mqueue nagios用户没权限

    Nagios邮件报警   Nagios邮件报警 准备 yum - y install ntp        ntpdate time.windows.com   同步时间,否则无法发送邮件 yum - ...

  3. Json解析注解 ---@SerializedName

    项目前后端交互采用的是JSON传输,因为前后端沟通不多,经常造成数据格式不统一:在不想后台改动太多下,需要使用@SerializedName解决这个问题 解析数据使用的是Gson解析的json数据 @ ...

  4. Maven 错误 :The POM for com.xxx:jar:0.0.1-SNAPSHOT is invalid, transitive dependencies (if any) will not be available

    一个大的maven 项目,结构是一个根pom,下面几个小的module,包括了appservice-darc,appservice-entity等,其中appservice-darc 依赖了 apps ...

  5. 学习Flask框架

      # -*- encoding: utf-8 -*- #导包 from flask import Flask #建立flask对象 app = Flask(__name__) #使用flask路由器 ...

  6. zabbix解决监控图中出现中文乱码问题

    首先确定zabbix开启了中文支持功能:登录到zabbix服务器的数据目录下(前面部署的zabbix数据目录是/data/www/zabbix),打开 locales.inc.php文件[root@Z ...

  7. react源码第一天

    1.下载源码:github 16.7版本 2.找到笔记:https://react.jokcy.me/book/api/react.html#

  8. linux下redis的安装方法

    一.Linux环境下安装Redis   Redis的官方下载网址是:http://redis.io/download  (这里下载的是Linux版的Redis源码包) Redis服务器端的默认端口是6 ...

  9. Java demo之时间

    jdk原生 public class Start { public static void main(String[] args) { SimpleDateFormat simpleDateForma ...

  10. 【UiPath 中文教程】02 - 创建自定义 Activity

    在 UiPath Studio 中,活动 (Activity) 是流程自动化的基石,是构成自动化程序的最小模块.它们被包含在一个个 NuGet 包中. UiPath Studio 中有 3 类包: 官 ...