题目描述
输出一个 n 阶方阵,其元素排列方式为:从左上角开始按列顺序呈现出蛇形。如:
1 20 21 40 41 60 61 80 81 100
2 19 22 39 42 59 62 79 82 99
3 18 23 38 43 58 63 78 83 98
4 17 24 37 44 57 64 77 84 97
5 16 25 36 45 56 65 76 85 96
6 15 26 35 46 55 66 75 86 95
7 14 27 34 47 54 67 74 87 94
8 13 28 33 48 53 68 73 88 93
9 12 29 32 49 52 69 72 89 92
10 11 30 31 50 51 70 71 90 91
输入描述
每行一个正整数 n (n <= 120),表示 n 阶方阵。
输出描述
按列序排列的蛇形矩阵,每个方阵之间空一行。每个矩阵元素间一个空格,包含最后一个元素之后。
样例输入
3
4
样例输出
1 6 7
2 5 8
3 4 9
1 8 9 16
2 7 10 15
3 6 11 14
4 5 12 13
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
int a[121][121]={0};
while(cin>>n)
{
int flag=-1,k=1;
a[0][0]=1;
for(int i=0;i<n;i++)
{
if(flag==-1)
{
for(int j=0;j<n;j++)
{
a[j][i]=k;
k++;
flag=1;
}
}
else
for(int j=n-1;j>=0;j--)
{
a[j][i]=k;
k++;
flag=-1;
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
cout<<endl;
}
}
该博客主要介绍了如何实现一种输出蛇形矩阵的算法。它按照从左上角开始,按列顺序呈现元素,形成类似蛇形的路径。示例中展示了3阶和4阶方阵的输出,并给出了相应的C++代码实现。该算法适用于生成指定阶数的蛇形矩阵,对于理解矩阵操作和编程逻辑有一定帮助。
430

被折叠的 条评论
为什么被折叠?



