题解 | #回型矩阵#
回型矩阵
https://ac.nowcoder.com/acm/problem/22230
思路:
处理好边界问题,利用循环模拟生成回型矩阵即可
#include <bits/stdc++.h>
using namespace std;
int ar[21][21];
int main(){
std::ios::sync_with_stdio(false);
std::cin.tie(0);
int n,left = 1,right,up = 1,down,count = 0; //定义边界变量
cin>>n;
right = down = n;
while(count < n*n){
for(int i = left;i <= right;i++)
ar[up][i] = (++count);
up++;
for(int i = up;i <= down;i++)
ar[i][right] = (++count);
right--;
for(int i = right;i >= left;i--)
ar[down][i] = (++count);
down--;
for(int i = down;i >= up;i--)
ar[i][left] = (++count);
left++;
}
for(int i = 1;i <= n;i++){
for(int j = 1;j <= n;j++)
cout<<ar[i][j]<<' ';
cout<<'\n';
}
return 0;
}