#include #include using namespace std;

void generateMatrix(int n) { vector<vector> matrix(n, vector(n, 0)); int num = 1; int rowStart = 0, rowEnd = n-1; int colStart = 0, colEnd = n-1;

while (rowStart <= rowEnd && colStart <= colEnd) {
    // Fill top row
    for (int i = colStart; i <= colEnd; i++) {
        matrix[rowStart][i] = num++;
    }
    rowStart++;
    
    // Fill right column
    for (int i = rowStart; i <= rowEnd; i++) {
        matrix[i][colEnd] = num++;
    }
    colEnd--;
    
    // Fill bottom row
    for (int i = colEnd; i >= colStart; i--) {
        matrix[rowEnd][i] = num++;
    }
    rowEnd--;
    
    // Fill left column
    for (int i = rowEnd; i >= rowStart; i--) {
        matrix[i][colStart] = num++;
    }
    colStart++;
}

// Print the matrix
for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
        cout << matrix[i][j] << '	';
    }
    cout << endl;
}

}

int main() { int n; cin >> n; generateMatrix(n); return 0; }

C++ 生成螺旋矩阵 - 算法实现及示例

原文地址: https://www.cveoy.top/t/topic/ql3P 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录