【問題の説明】蛇行行列とは、1から始まる自然数を順番に並べてできる三角行列です
[入力形式] 正の整数 N は階層数を示し、N は 100 以下です。
[出力形式] N行の蛇行行列を出力します 行列の三角形内の同一行の数値はスペースで区切られ、行末に余分なスペースはありません。
【入力例】
5
【出力例】
1 3 6 10 15
2
5 9 14
4 8 13 7 12
11
前に書く:ルールをまとめてアナログ出力する
詳細については、次のコード (AC) を参照してください。
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
cin>>n;
int nt=n+1;
int begin=1;
int btemp=0;
int jiangelie=0;//列两个数之间的间隔,从1开始
int jiangehang=1;//最开始两个数的行之间间隔,从2开始
int jiangehangtemp;//从第二行开始和第一行的间隔的关系
while(nt--) {//控制层数
int ntemp=nt;
int flag1=0;
int flag2=0;
while(ntemp--) {//控制每一层的个数
cout<<begin<<' ';
if(flag1==0) { //第一次进入
btemp=begin;//将每次的第一行数字进行记录
flag1=1;
}
jiangehang++;
if(flag2==0) { //第一次进入
jiangehangtemp=jiangehang;
flag2=1;
}
begin+=jiangehang;
}
cout<<endl;
jiangelie++;//1,2,3,4.....
begin=btemp+jiangelie;//1,2,4,7,11.....
jiangehang=jiangehangtemp;
}
return 0;
}