题目描述
输入格式
输入只有一行,包含一个整数,即幻方的大小。
输出格式
输出包含N行,每行N个整数,即按上述方法构造出的N*N的幻方。相邻两个整数之间用单个空格隔开。
样例
输入样例
3
输出样例
8 1 6
3 5 7
4 9 2
算法分析
这一题非常的简单。
什么是幻方?
幻方(Magic Square)是一种将数字安排在正方形格子中,使每行、列和对角线上的数字和都相等的方法。
幻方这道模拟题,主要是条件是否全部完成,题目虽然给了条件,但是还可以简化一下:
1、i 是否出了矩阵(即i-1==0)j 是否出了矩阵(即j+1= =n).
2、 a[i-1][j+1] 是否有数(用一个 bool flag[M][M] 来判断),有 则在原来的位置向下一行;没有 则进行填补。
代码
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int M=10005;
int a[M]