#include <iostream> #include <string> #include <vector> using namespace std; // 找规律:随着n的增加,蛇形矩阵中的元素也在增加 // n = 1, 填充a[0][0] // n = 2, 填充a[1][0], a[0][1] // n = 3, 填充a[2][0], a[1][1], a[0][2] // n = 4, 填充a[3][0], a[2][1], a[1][2], a[0][3] // 数组a[101][101]存放蛇形矩阵 int a[101][101]; // 计算函数 void cal_func(int n) { int num = 1; // 蛇形矩阵递增值 for (int i = 1; i <= n; i++) // 第i行(i从1开始) { for (int j = i - 1; j >= 0; j--) { a[j][i-j-1] = num; num++; } } } // 打印函数 void print_func(int n) { for (int i = 0; i < n; i++) { for (int j = 0; j < n - i; j++) { if (j == n - i - 1) { printf ("%d\n", a[i][j]); } else { printf ("%d ", a[i][j]); } } } } int main () { int n; while (cin >> n) { cal_func(n); print_func(n); } return 0; }