Codeforces710C【数学】
n阶幻方问题::http://blog.csdn.net/fengchaokobe/article/details/7437767
学一下就好啦~
奇幻七绝
先填上行正中央,
依次斜填切莫忘。
上格没有顶格填,
顶格没有底格放。
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
int a[50][50];
int main()
{
int n;
scanf("%d",&n);
int num=1;
int j=n/2;
int i=0;
while(num<=(n*n))
{
int x=(i%n+n)%n;
int y=(j%n+n)%n;
a[x][y]=num;
if(num%n==0)
++i;
else{
--i;
++j;
}
num++;
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(j) printf(" ");
printf("%d",a[i][j]);
}
puts("");
}
return 0;
}