[模拟][NOIP2015]神奇的幻方
神奇的幻方
题目描述
幻方是一种很神奇的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]神奇的幻方的更多相关文章
- 题解【洛谷P2615】[NOIP2015]神奇的幻方
题目描述 幻方是一种很神奇的 \(N \times N\) 矩阵:它由数字 \(1,2,3,\cdots \cdots ,N \times N\) 构成,且每行.每列及两条对角线上的数字之和都相同. ...
- NOIP2015神奇的幻方
题目描述 幻方是一种很神奇的 N∗N 矩阵:它由数字1,2,3,⋯⋯,N×N 构成,且每行.每列及两条对角线上的数字之和都相同. 当 N 为奇数时,我们可以通过下方法构建一个幻方: 首先将 1 写在第 ...
- COGS 2104. [NOIP2015]神奇的幻方
★ 输入文件:2015magic.in 输出文件:2015magic.out 简单对比时间限制:1 s 内存限制:256 MB 模拟 一开始数组开小了.. 屠龙宝刀点击就送 #incl ...
- 2015 NOIP day1 t1 神奇的幻方 模拟
神奇的幻方 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.luogu.org/problem/show?pid=2615 Descri ...
- NOIP2015 D1T1 神奇的幻方
洛谷P2615 很简单的模拟题……每枚举一个点只要保存上一个点的x,y值即可,不用开数组存放 另外题目中对于K的操作都在K-1的九宫格范围内,所以我们巧妙运用++和--就可以做到每个分支一行代码 还有 ...
- 神奇的幻方(NOIP2015)
先给题目链接:神奇的幻方 太水了这题,直接模拟就行,直接贴代码. #include<bits/stdc++.h> using namespace std; int main(){ int ...
- P2615 神奇的幻方
P2615 神奇的幻方 题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,……,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首 ...
- noip2015day1 T1 4510 神奇的幻方
4510 神奇的幻方 noip2015day1 T1 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Descripti ...
- 洛谷 P2615 神奇的幻方
传送门 I'm here! 思路 这个题,我们可以直接去模拟,因为范围很小,且\(N\)都是奇数 直接构造一个矩阵,初始值都为\(0\),然后\(while\)循环,根据题目给出的\(4\)个条件进行 ...
随机推荐
- html client websocket
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Nagios Email告警 发不了,可能是 /var/spool/mqueue nagios用户没权限
Nagios邮件报警 Nagios邮件报警 准备 yum - y install ntp ntpdate time.windows.com 同步时间,否则无法发送邮件 yum - ...
- Json解析注解 ---@SerializedName
项目前后端交互采用的是JSON传输,因为前后端沟通不多,经常造成数据格式不统一:在不想后台改动太多下,需要使用@SerializedName解决这个问题 解析数据使用的是Gson解析的json数据 @ ...
- 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 ...
- 学习Flask框架
# -*- encoding: utf-8 -*- #导包 from flask import Flask #建立flask对象 app = Flask(__name__) #使用flask路由器 ...
- zabbix解决监控图中出现中文乱码问题
首先确定zabbix开启了中文支持功能:登录到zabbix服务器的数据目录下(前面部署的zabbix数据目录是/data/www/zabbix),打开 locales.inc.php文件[root@Z ...
- react源码第一天
1.下载源码:github 16.7版本 2.找到笔记:https://react.jokcy.me/book/api/react.html#
- linux下redis的安装方法
一.Linux环境下安装Redis Redis的官方下载网址是:http://redis.io/download (这里下载的是Linux版的Redis源码包) Redis服务器端的默认端口是6 ...
- Java demo之时间
jdk原生 public class Start { public static void main(String[] args) { SimpleDateFormat simpleDateForma ...
- 【UiPath 中文教程】02 - 创建自定义 Activity
在 UiPath Studio 中,活动 (Activity) 是流程自动化的基石,是构成自动化程序的最小模块.它们被包含在一个个 NuGet 包中. UiPath Studio 中有 3 类包: 官 ...