//解题思路:
//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;
}
}
}
京公网安备 11010502036488号