蓝桥杯备考:模拟题之神奇的幻方
简单模拟题,直接上代码,不做过多陈述
#include <iostream>
using namespace std;
const int N = 45;
int a[N][N];
int main()
{
int n;cin >> n;
int cnt = 1;
a[1][n/2+1] = 1;
int x = 1;
int y = n/2+1;
for(int i =1;i<=n;i++)
{
for(int j =1;j<=n;j++)
{
cnt++;
if(x==1 && y!=n)
{
x = n;
y+=1;
}
else if(x!=1 && y==n)
{
x-=1;
y=1;
}
else if(x==1 && y==n)
{
x-=1;
}
else
{
if(!a[x-1][y+1])
{
x=x-1,y=y+1;
}
else
{
x+=1;
}
}
a[x][y] = cnt;
}
}
for(int i = 1;i<=n;i++)
{
for(int j = 1;j<=n;j++)
{
cout << a[i][j] <<" ";
}
cout << endl;
}
return 0;
}