这题很有意思,要用马步法,走出奇数幻方,其实也不是很难,看程序理解一下吧。
标程:
#include<bits/stdc++.h>
using namespace std;
int a[105][105];
void dy(int n,int m)
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cout<<setw(4)<<a[i][j];
}
cout<<endl;
}
}
int main()
{
int n,d=1,i,j;
cin>>n;
i=1;
j=n/2+1;
for(int k=1;k<=n*n;k++)
{
a[i][j]=k;
if(k%n==0) i++;
else
{
i=i+2;
j=j+1;
if(i>n) i=i-n;
if(j>n) j=j-n;
}
}
dy(n,n);
return 0;
}