题目描述:输入n试打印输出nn的回形矩阵每个元素占4位场宽。输入:一行一个整数n1sns20。输出:一个n行n列的回形矩阵。样例组样例输入1:6样例输出1:1 1 1 1 1 11 2 2 2 2 11 2 3 3 2 11 2 3 3 2 11 2 2 2 2 11 1 1 1 1 1样例输入2:5样例输出2:1 1 1 1 11 2 2 2 11 2 3 2 11 2 2 2 11 1 1 1
#include
int main() { int n; cin >> n;
int matrix[20][20] = {0};
int num = 1;
int row_start = 0, row_end = n-1, col_start = 0, col_end = n-1;
while (row_start <= row_end && col_start <= col_end) {
// fill top row
for (int i = col_start; i <= col_end; i++) {
matrix[row_start][i] = num++;
}
row_start++;
// fill right column
for (int i = row_start; i <= row_end; i++) {
matrix[i][col_end] = num++;
}
col_end--;
// fill bottom row
for (int i = col_end; i >= col_start; i--) {
matrix[row_end][i] = num++;
}
row_end--;
// fill left column
for (int i = row_end; i >= row_start; i--) {
matrix[i][col_start] = num++;
}
col_start++;
}
// print matrix
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << setw(4) << matrix[i][j];
}
cout << endl;
}
return 0;
原文地址: https://www.cveoy.top/t/topic/ihyn 著作权归作者所有。请勿转载和采集!