题解 | 蛇形矩阵

蛇形矩阵

https://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e

#include <iostream>
#include <vector>
using namespace std;

int main() {
    int n;
    cin >> n;
    vector<vector<int> > matrix(n, vector<int>(n, 0));
    int k = (n + 1) * n / 2;
    int x = 0, y = 0;
    for(int i = 1; i <= k; ++i) {
        if(x >= 0 && y >= 0 && x < n && y < n) {
            matrix[x][y] = i;
        }
        if(x == 0) {
            x = y + 1;
            y = 0;
        } else {
            --x; ++y;
        }
    }

    
    for(int i = 0; i < n; ++i) {
        for(int j = 0; j < n - i; ++j) {
            cout << matrix[i][j];
            if(j == n - i - 1) cout << endl;
            else cout << " ";
        }
    }
    return 0;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务