A41081. 蛇行矩阵
填空题
中等
知识点
题目描述
蛇行矩阵
题目描述
蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。
输入格式
本题有多组数据,每组数据由一个正整数N组成。(N不大于100)
输出格式
对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。矩阵三角中同一行的数字用一个空格分开。行尾不要多余的空格。
样例输入
5
样例输出
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11
参考答案
#include <iostream>
#include <vector>
using namespace std;
int main() {
int N = 0;
cin >> N;
vector<vector<int>> matrix(N, vector<int>(N, 0)); // 全0的N*N矩阵
int count = 1; // 计数器,一直递增
for (int i = 0; i < N; ++i) {
for (int j = i; j >= 0; --j) {
matrix[j][i - j] = count++; // 生成蛇形矩阵
}
}
for (int i = 0; i < N; ++i) {
for (int j = 0; j < N - i; ++j) {
cout << matrix[i][j] << " ";
}
cout << endl; // 未处理每行的最后一个空格
}
return 0;
}
上一题
下一题