程序设计训练4.12蛇行矩阵
【问题描述】蛇形矩阵是由 1 开始的自然数依次排列成的一个矩阵上三角形
【输入形式】 正整数 N表示层数,N 不大于 100
【输出形式】输出一个 N 行的蛇形矩阵,矩阵三角中同一行的数字用一个空格分开,行尾不要多余的空格。
【样例输入】
5
【样例输出】
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11
【思路说明】
本题只要看到每行数之间的关系以及第一列数之间的关系即可,第一列数每一个数都是上一个数加上该数所在的行数 i(这个行数是,第一行 i=0,第二行 i=1……),行数则为每一个数都是前一个数加上 行数 j( j 最初= i,后每输出一个数,j++)再加 2,写出对应代码即可。
【代码如下】
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int s=1;//最初的第一个数
for(int i=0;i<n;i++)
{
s+=i; //每一行的第一个数
cout<<s;
int h=s;
for(int j=i;j<n-1;j++)
{
cout<<" ";
h+=j+2;//每一行的数之间的关系
cout<<h;
}
cout<<endl;
}
}