7 条题解
-
0
#include <bits/stdc++.h> using namespace std; const int N = 1010; int a[N][N]; int main() { int m, n; cin >> m >> n; //初始位置为右上角 int y = n; int x = 1; int cnt = 1; while (cnt <= m \* n) { // 下 while (x <= m && a[x][y] == 0) { a[x][y] = cnt++; x++; } x--;//这里x--是因为最后下走的时候x多加了一次 下面同理 y--; // 左 while (y >= 1 && a[x][y] == 0) { a[x][y] = cnt++; y--; } y++; x--; // 上 while (x >= 1 && a[x][y] == 0) { a[x][y] = cnt++; x--; } x++; y++; // 右 while (y <= n && a[x][y] == 0) { a[x][y] = cnt++; y++; } y--; x++; } // 输出 for(int i = 1;i <= m;i++) { for(int j = 1;j <= n;j++) { cout << setw(5) << a[i][j]; } cout << '\\n'; } return 0; }
信息
- ID
- 78
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 682
- 已通过
- 175
- 上传者