给一个n,要求构造一个矩阵,满足:
1、矩阵大小为(2n+1)*(2n+1)
2、沿对角线对称
3、每个数的值在[0,2n+1]上
4、每行每列没有重复的值
手动写了一下 直接找到规律。。
#include<cstdio>
#include<cstring>
using namespace std;
int n,m,i,j,cnt,s[205][205],k;
int main()
{
while(~scanf("%d",&n))
{
m=2*n+1;
cnt=1;
for(i=0;i<m;i++,cnt--)
{
if(cnt==-1) cnt=m-1;
for(j=cnt,k=1;k<=m;j++,k++)
{
if(j==m) j=0;
s[i][j]=k;
}
s[i][i]=0;
}
for(i=0;i<m;i++)
{
for(j=0;j<m-1;j++)
printf("%d ",s[i][j]);
printf("%d\n",s[i][m-1]);
}
}
return 0;
}