题解 | #蛇形矩阵#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;
}
}
}

