蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。
例如,当输入5时,应该输出的三角形为:
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11
请注意本题含有多组样例输入。
输入描述:
输入正整数N(N不大于100)
输出描述:
输出一个N行的蛇形矩阵。
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
while(cin>>n){
vector<vector<int>>data(n,vector<int>(n,0));
int num=1;//设定要赋值的数
for(int t=0;t<n;t++){//蛇形趟数/
int i=t,j=0;//坐标i,j
while(i>=0){ //小于0说明到顶了,将进行下一趟蛇形
data[i][j]=num;
num++;
i--;
j++;//往右上方移动
}
//完成一趟蛇形后,t加1,i=t,开始新的一趟
}
//全部赋值完毕后,开始打印输出
for(int i=0;i<n;i++){
for(int j=0;j<n-i;j++){
cout<<data[i][j]<<" ";
}
cout<<endl;
}
}
return 0;
}