文章目录
- C++
- 总结
本题链接:201412-2 Z字形扫描
本博客给出本题截图:
C++
#include <iostream> using namespace std; const int N = 510; int g[N][N]; int main() { int n; cin >> n; for (int i = 1; i <= n; i ++ ) for (int j = 1; j <= n; j ++ ) cin >> g[i][j]; for (int i = 2; i <= 2 * n; i ++ ) if (i % 2 == 0) { for (int j = i - 1; j; j -- ) if (j >= 1 && j <= n && i - j >= 1 && i - j <= n) cout << g[j][i - j] << ' '; } else { for (int j = 1; j < i; j ++ ) if (j >= 1 && j <= n && i - j >= 1 && i - j <= n) cout << g[j][i - j] << ' '; } return 0; }
总结
i
指的是横坐标和纵坐标的和,通过观察可以发现,在每一条的遍历过程中横纵坐标之和都是一个定值,注意区分奇数行的遍历和偶数行的遍历,两个式相反方向的