题解 | #蛇形矩阵#C++解法,注意找规律
蛇形矩阵
http://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e
//解题思路: //1.第一行其实是前n项等差数列的和 //2.注意观察下面行的元素,和上面行其实有关系v[i][j]=v[i-1][j+1]-1 #include<bits/stdc++.h> using namespace std; int main() { int n; while(cin>>n) { vector<vector<int>> v(n,vector<int>(n,0));//用vector创建一个二维数组 for(int i=0;i<n;i++) { for(int j=0;j<n-i;j++) { if(i==0) { v[i][j]=j+1+j*(j+1)/2;//等差数列求和,注意j是从0开始的,所以j需要加1 } else { v[i][j]=v[i-1][j+1]-1;//注意观察,下面一行数据核上面一行数据的关系 } if(v[i][j]) //打印 { cout<<v[i][j]<<' '; } } cout<<endl; } } }