- 原题题目
- 代码实现
- 提交结果
原题题目
代码实现
#include#include #define X 10 using namespace std; int main() { int n; cin >> n; int matrix[X][X]; int low = 0, up = n - 1; int left = 0, right = n - 1; int num = 0, finalnum = n * n; while (1) { for (int i = left; i <= right; ++i) { matrix[low][i] = ++num; } if (num >= finalnum) break; for (int i = low + 1; i <= up; ++i) { matrix[i][right] = ++num; } if (num >= finalnum) break; for (int i = right - 1; i >= left; --i) { matrix[up][i] = ++num; } if (num >= finalnum) break; for (int i = up - 1; i >= low + 1; --i) { matrix[i][left] = ++num; } ++low;--up; ++left;--right; } for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { cout << setw(4) << setfill('*') << matrix[i][j]; } cout << endl; } return 0; }
提交结果



