蓝桥杯刷题——蛇行矩阵
问题 1097: 蛇行矩阵
时间限制: 1Sec 内存限制: 64MB 提交: 1890 解决: 1110
题目描述
蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。
输入
本题有多组数据,每组数据由一个正整数N组成。(N不大于100)
输出
对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。矩阵三角中同一行的数字用一个空格分开。行尾不要多余的空格。
样例输入
5
样例输出
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11
题目分析
分析出数字规律,只要记录每次加的数据是多少就可以很快输出了
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
while (cin>>n) {
int beg=1;
for(int i=1; i<=n; i++) {
cout<<beg;
int tmp = beg;
for(int j=i+1; j<=n; j++) {
tmp+=j;
cout<<" "<<tmp;
}
cout<<endl;
beg+=i;
}
}
return 0;
}
通项公式解题
#include<bits/stdc++.h>
using namespace std;
int main() {
int num;
while (cin >> num) {
for(int i=0; i<=num-1; i++) {
for(int j=0; j<=num-1-i; j++) {
cout<<(i*i+i+2*i*j+j*j+3*j)/2+1<<' ';
}
cout << endl;
}
}
return 0;
}