1 条题解

  • 0
    @ 2025-12-5 12:25:26

    C++ :

    #include <iostream>
    #include <iomanip>  // 用于设置输出宽度
    using namespace std;
    
    int main() {
        int n;
        cin >> n;
        int matrix[9][9] = {0};  // 最大n为9,定义9x9数组足够
        int top = 0, bottom = n - 1;
        int left = 0, right = n - 1;
        int num = 1;
    
        while (num <= n * n) {
            // 从左到右填充上边界
            for (int i = left; i <= right; ++i) {
                matrix[top][i] = num++;
            }
            top++;  // 上边界下移
    
            // 从上到下填充右边界
            for (int i = top; i <= bottom; ++i) {
                matrix[i][right] = num++;
            }
            right--;  // 右边界左移
    
            // 从右到左填充下边界
            for (int i = right; i >= left; --i) {
                matrix[bottom][i] = num++;
            }
            bottom--;  // 下边界上移
    
            // 从下到上填充左边界
            for (int i = bottom; i >= top; --i) {
                matrix[i][left] = num++;
            }
            left++;  // 左边界右移
        }
    
        // 按格式输出,每个数字占3个字符宽度
        for (int i = 0; i < n; ++i) {
            for (int j = 0; j < n; ++j) {
                cout << setw(3) << matrix[i][j];
            }
            cout << endl;
        }
    
        return 0;
    }
    
    • 1

    信息

    ID
    74
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者