题目描述
给你一个整数n,输出n∗n的蛇形矩阵。
输入格式输入一行,包含一个整数n
输出格式输出n行,每行包含n个正整数,通过空格分隔。
1<=n<=1000
样例样例输入
4
样例输出
1 2 6 7
3 5 8 13
4 9 12 14
10 11 15 16
数据范围与提示
分类标签
[二维数组]
C++题解代码
#include <bits/stdc++.h>
using namespace std;
int a[1001][1001];
int b;
int c;
int e;
int f;
bool d;
// The main procedure
int main() {
cin>>b;
d = true;
c = 1;
for (int i = 1; i <= b; i++) {
if (d) {
e = i;
f = 1;
} else {
e = 1;
f = i;
}
for (int j = 1; j <= i; j++) {
a[e][f] = c;
c++;
if (d) {
e--;
f++;
} else {
e++;
f--;
}
}
d = (!d);
}
for (int i = (b-1); i >= 1; i--) {
if (d) {
e = b;
f = ((b-i)+1);
} else {
e = ((b-i)+1);
f = b;
}
for (int j = 1; j <= i; j++) {
a[e][f] = c;
c++;
if (d) {
e--;
f++;
} else {
e++;
f--;
}
}
d = (!d);
}
for (int i = 1; i <= b; i++) {
if (i > 1) {
cout<<'\n';
}
for (int j = 1; j <= b; j++) {
if (j > 1) {
cout<<" ";
}
cout<<a[i][j];
}
}
return 0;
}
Blockly题解代码图片