题目说明
蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。
样例输入
5
样例输出
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11
可以发现每行的间距是递增的(2,3,4,5,6),每列的间距是累加求和的(1+1+2+3+4+……)
因此代码如下
#include <iostream>
using namespace std;
int main()
{
int height;
cin>>height;//输入一个数作为矩阵的维度大小
int row=1;
int sum =0;
for(int i=0;i<height;++i){
row+=i;//每行第一个值累加
int up = i+2;
for(int j=0;j<height-i;++j){
if(j==0)//每行开头
{
sum=row;
}else{
sum+=up;//行内递增
up++;
}
cout<<sum;
if(j!=height-i-1){
cout<<" ";//行间空格
}
}
cout<<endl;//每行之后打回车
}
return 0;
}