我已经为许多模式编写了代码,但无法为此编写......甚至没有得到任何如何继续的提示。
我想生成以下输出:
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
...其中矩形的宽度和高度被指定为输入。
最佳答案
我会这样做:
将 5x5 二维整数数组初始化为 0。有一个 direction
变量,并为四个方向定义常量或 enum
。开始从 (0, 0)“向右”移动,用递增的值填充数组,直到到达边缘或非 0 的数字。然后,递增方向(并换行)并继续。然后按行打印数组。
使用循环的另一种方法是迭代所有 (x, y) 坐标,并将 x 和 y 传递到一个函数中,该函数会给出该位置的值。我编写的函数与填充数组的函数执行完全相同的操作,只是它不写入数组,并且当它到达给定的 (x, y) 时,它返回当前值。效率不是很高,但达到了效果。
关于c++ - 由围绕矩形顺时针方向移动的数字组成的图案(长度和宽度每次都减小),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7042165/