// 三种蛇形填数 #include using namespace std; const int N = 50; void solve1(){ int a[N][N]; int n; cin >> n; int sum = 1; for(int i = 1; i <= n; i++){ if(i % 2){ // 列数是否为奇数, 是则向下顺序赋值 for(int j = 1; j <= n; j++){ a[j][i] = sum++; } }else{ // 列数为偶数, 顺序向上赋值 for(int j = n; j >= 1; j--){ a[j][i] = sum++; } } } for(int i = 1; i <= n; i++){ for(int j = 1; j <= n; j++){ cout << setw(4) << a[i][j]; } cout << endl; } } void solve2(){ int a[N][N]; int n; cin >> n; int num = 1; for(int i = 0; n - 1 - 2*i >= 0; i++){ for(int j = n - i; j <= n - 1 - 2*i; j++){ } } } int main(){ solve1(); return 0; }