Advertisement

蓝桥杯三角螺旋递归阵

阅读量:

方阵中的主对角线以上部分被称为"上三角"区域。
请设计一个填充n阶方阵上三角区域的程序。
该程序应遵循以下规则:按自然数序列排列数字,并从左至右开始填入矩阵;填入的方向为顺时针方向地进行螺旋式填充。
例如:
当n=3时:
[矩阵内容]
当n=4时:
[矩阵内容]
当n=5时:
[矩阵内容]

程序运行时,从标准输入获得整数n(3~20)
程序输出:方阵的上三角部分。

要求格式:每个数据宽度为4,右对齐。

不知道大家以前有没有做过这件事吗?反正我在学C++的时候老师曾经给我们出过题吗?现在想起来有点有趣的是,在学习C++的时候那些日子总是过得特别快。

大笑

由于涉及递归运算,则必须将这一过程抽象为一层形式以供后续处理,在这种情况下我们可以明确指出每一层次的具体含义

1 2 3 4 5

12 6
11 7
10 8
9

我们设定起始点并将其存储在数组中时会发现这些点包括(0,0)、(1,1)、(2,2),它们的特点是坐标值相等因此我们可以使用变量k来进行表示接下来我们会发现这个三角形实际上是一个等边三角形为了更好地绘制它我们需要确定其边的终点n其中初始值n等于输入参数但在进行数组运算过程中需减去1具体来说我们可以先绘制第一条横边这条线段可以从map[k][0]延伸至map[k][n]接着我们需要绘制斜边为此我们引入两个变量i和j令i=k+

全部评论 (0)

还没有任何评论哟~