【题解】洛谷P2615[2015NOIP]神奇的幻方 模拟

题目链接
【题解】洛谷P2615[2015NOIP]神奇的幻方 模拟
【题解】洛谷P2615[2015NOIP]神奇的幻方 模拟
【题解】洛谷P2615[2015NOIP]神奇的幻方 模拟
【题解】洛谷P2615[2015NOIP]神奇的幻方 模拟


#include<cstdio>
const int N=40;
int a[N][N],num=1,n,x,y;
int main()
{
	scanf("%d",&n);
	while(num<=n*n)
	{
		if(num==1)a[x=1][y=(n+1)/2]=num++;
		else if(x==1&&y!=n)a[x=n][y=y+1]=num++;
		else if(x!=1&&y==n)a[x=x-1][y=1]=num++;
		else if(x==1&&y==n)a[x=x+1][y=y]=num++;
		else if(!a[x-1][y+1])a[x=x-1][y=y+1]=num++;
		else a[x=x+1][y=y]=num++;
	}
	for(int i=1;i<=n;i++)
	    for(int j=1;j<=n;j++)
	        printf("%d%c",a[i][j],j==n?'\n':' ');
	return 0;
}

总结

模拟