文章

19

粉丝

67

获赞

29

访问

11.6k

头像
螺旋打印,每个方向打印完之后重新调整阈值以适应下一次打印
P1216 福州大学2018年机试题
发布于2023年8月9日 13:07
阅读数 633

#include <bits/stdc++.h>

using namespace std;

void generateSpiralMatrix(int n)
{
    vector<vector<int>> matrix(n, vector<int>(n, 0));

    int num = 1;
    int rowStart = 0, rowEnd = n - 1, colStart = 0, colEnd = n - 1;

    while (rowStart <= rowEnd && colStart <= colEnd)
    {
        // 向下填充
        for (int i = rowStart; i <= rowEnd; i++)
        {
            matrix[i][colStart] = num++;
        }
        colStart++;

        // 向右填充
        for (int i = colStart; i <= colEnd; i++)
        {
            matrix[rowEnd][i] = num++;
        }
        rowEnd--;

        // 向上填充
        if (colStart <= colEnd)
        {
            for (int i = rowEnd; i >= rowStart; i--)
            {
                matrix[i][colEnd] = num++;
            }
            colEnd--;
        }

        // 向左填充
        if (rowStart <= rowEnd)
        {
            for (int i = colEnd; i >= colStart; i--)
...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发