AcWing 753. 平方矩阵 I
原题链接
困难
作者:
一只草莓
,
2020-01-17 01:35:38
,
所有人可见
,
阅读 813
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 110;
int f[N][N];//开一个数组
int main()
{
int n;
while(cin >> n,n)//循环输入
{
memset(f,0,sizeof f);//每次赋值前将数组置零
int x = (n + 1) / 2;//计算出数组层数 即 数组内最大,最里层的数的值
for(int i = 1; i <= x; i ++)//从外到里循环用层数值t替换数组中的0
{
for(int j = 1; j <= n; j ++)
for(int k = 1; k <= n; k ++)
{//枚举f[n][n]内每个数
if((j == i || j == n - i + 1 || k == i || k == n - i + 1) && f[j][k] == 0)//判断该点为是否为当前层数 且未被赋值过
f[j][k] = i;//赋值
}
}
for(int j = 1; j <= n; j ++)
{
for(int k = 1; k <= n; k ++)cout<< f[j][k] << ' ';
cout << endl;
}//输出
cout << endl ;//换行
}
return 0;
}