乐清有那些网站,wordpress发布软件,转发 wordpress 奖励,做采集网站难不题目描述 回形取数就是沿矩阵的边取数#xff0c;若当前方向上无数可取或已经取过#xff0c;则左转90度。一开始位于矩阵左上角#xff0c;方向向下。 输入 输入第一行是两个不超过200的正整数m, n#xff0c;表示矩阵的行和列。接下来m行每行n个整数#xff0c;表示这个…题目描述 回形取数就是沿矩阵的边取数若当前方向上无数可取或已经取过则左转90度。一开始位于矩阵左上角方向向下。 输入 输入第一行是两个不超过200的正整数m, n表示矩阵的行和列。接下来m行每行n个整数表示这个矩阵 输出 输出只有一行共mn个数为输入矩阵回形取数得到的结果。数之间用一个空格分隔行末不要有多余的空格。 样例输入 3 3 1 2 3 4 5 6 7 8 9 样例输出 1 4 7 8 9 6 3 2 5
代码如下
#include iostream
using namespace std;int dx[] {1, 0, -1, 0}, dy[] {0, 1, 0, -1};
const int N 300;
int a[N][N];
bool st[N][N];int main() {int m, n;cin m n;for (int i 0; i m; i)for (int j 0; j n; j)cin a[i][j];int x 0, y 0, d 0;int count 0;for (int i 1; i n * m; i) {cout a[x][y];st[x][y] true;count;int xx x dx[d], yy y dy[d];if (xx 0 || xx m || yy 0 || yy n || st[xx][yy]) {d (d 1) % 4;xx x dx[d], yy y dy[d];}x xx, y yy;if (count ! n * m) {cout ;}}return 0;
}