[模拟][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\)个条件进行 ...
随机推荐
- eclipse的常用设置(空间新建后需要的配置)
地址:https://blog.csdn.net/qiaorui_/article/details/78424491 说明: 新下载的eclipse或者新建了一个工作空间,之 ...
- html--form表单
<!-- form 标签 作用:收集并提交用户的信息 属性: id 表单的id,用于js获取表单 name 表单的名字,用于js获取表单 action 表单提交的地址 method 表单提交 ...
- ubuntu远程windows桌面
最近把系统装成了ubuntu,需要远程windows ,就用到了ubuntu的 rdesktop工具 1.先打开终端输入 rdesktop 看系统是否安装了 rdesktop 如果没有安装需要 ...
- win10下安装ubantu
最近想看一点深度学习的东西,发现还是用linux更加方便一些.虽然,我对linux一窍不通....但是,目前很多教材,框架,都是基于linux.本来打算用虚拟机,后来发现虚拟机对于GPU的支持不好搞. ...
- Mac谷歌浏览器跨域
1.创建一个文件夹,这个文件夹是用来保存关闭安全策略后的用户信息的,名字可以随意取,位置也可以随意放,我用的是MyChromeDevUserData open -n /Applications/Goo ...
- 如果在springboot中设置了 修改了默认页面的指向 使用thymleaf模板 而请求不到静态资源 可能是
@Configurationpublic class DefaultView extends WebMvcConfigurerationSupport { @Override public void ...
- python之路:数据类型初识
python开发之路:数据类型初识 数据类型非常重要.不过我这么说吧,他不重要我还讲个屁? 好,既然有人对数据类型不了解,我就讲一讲吧.反正这东西不需要什么python代码. 数据类型我讲的很死板.. ...
- 一个request引发的bug
有很多错误由于需要是多线程是才会发生,导致经常在开发时很难发现, import java.lang.reflect.ParameterizedType; import java.util.List; ...
- Mac gitk安装与优化
一.mac系统安装gitk gitk是git的一个bin工具,如果git不包含gitk只能说明当前使用的git版本过老. 因此我们只需要安装最新的git就可以了.安装git方法如下: 首先安装brew ...
- (转)医疗IT运维系统
http://www.ewei.com/ask/87.html 含义解释 itil运维管理系统,为用户提供专业的it运维管理,对网络运行的状态.故障.性能等监控,又从业务的视角为管理人员提供综合分析和 ...