| 比赛 | 
    20151207初中练习 | 
    评测结果 | 
    AAAAAAAAAA | 
    | 题目名称 | 
    神奇的幻方 | 
    最终得分 | 
    100 | 
    | 用户昵称 | 
    WangQL. | 
    运行时间 | 
    0.005 s  | 
    | 代码语言 | 
    C++ | 
    内存使用 | 
    0.31 MiB  | 
    | 提交时间 | 
    2015-12-07 19:35:00 | 
显示代码纯文本
#include <fstream>
using namespace std;
int main()
{
	ifstream fin("2015magic.in");
	ofstream fout("2015magic.out");
	int n,i,array[100][100]={0},a,b;
	fin>>n;
	array[1][(n+1)/2]=1;a=1;b=(n+1)/2;
	for(i=2;i<=n*n;i++)
	{
		
		if(a==1&&b!=n)
		{
			array[n][b+1]=i;
			a=n;b=b+1;
			continue;
		}
		if(b==n&&a!=1)
		{
			array[a-1][1]=i;
			a=a-1;b=1;
            continue;
		}
		if(a==1&&b==n)
		{
			array[a+1][b]=i;
			a=a+1;
            continue;
		}
		if(a!=1&&b!=n&&array[a-1][b+1]==0)
		{
			array[a-1][b+1]=i;
			a=a-1;b=b+1;
			continue;
		}
		if(a!=1&&b!=n&&!(array[a-1][b+1]==0))
		{
			array[a+1][b]=i;
			a=a+1;
			continue;
		}
	}
	for(int j=1;j<=n;j++)
	{
		for(int k=1;k<=n;k++)
		{
			fout<<array[j][k]<<" ";
		}
		fout<<endl;
	}
	fin.close();
	fout.close();
	return 0;
}