【问题描述】蛇形矩阵是由 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;
}
类似题目:19.数圈_longzaizai_的博客-CSDN博客