题解 | #蛇形矩阵#
蛇形矩阵
https://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e
#include <iostream> #include <vector> using namespace std; // 观察到每斜列的横纵坐标和为定值 int main() { int N; cin >> N; int count=1; vector<vector<int>> table(N,vector<int>(N)); for(int i=0;i<N;++i){ for(int j=0;j<=i;++j){ table[i-j][j]=count++; } } for(int i=0;i<N;++i){ for(int j=0;j<N-i;++j){ cout << table[i][j] << ' '; } cout << endl; } } // 64 位输出请用 printf("%lld")
#include <iostream> #include <vector> using namespace std; // 第一行数字间距为:2 3 4 5... // 第一行数字间距为:3 4 5... // 第一行数字间距为:4 5... // 第一行数字间距为:5... // ... int main() { int N; cin >> N; int start=1; int zong=1; for(int i=0;i<N;++i){ int temp=start; int heng=2+i; for(int j=0;j<N-i;++j){ cout << temp << ' '; temp+=heng++; } cout << endl; start+=zong++; } } // 64 位输出请用 printf("%lld")