AcWing 756. 蛇形矩阵
生活随笔
收集整理的這篇文章主要介紹了
AcWing 756. 蛇形矩阵
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
輸入兩個整數n和m,輸出一個n行m列的矩陣,將數字 1 到 n*m 按照回字蛇形填充至矩陣中。
具體矩陣形式可參考樣例。
輸入格式
輸入共一行,包含兩個整數n和m。
輸出格式
輸出滿足要求的矩陣。
矩陣占n行,每行包含m個空格隔開的整數。
數據范圍
1≤n,m≤100
輸入樣例:
3 3
輸出樣例:
1 2 3
8 9 4
7 6 5
代碼解讀:
到達邊界后,說明要換方向了,我們用:
可以巧妙的讓方向向量旋轉90°
代碼如下:
#include <iostream> using namespace std; const int N = 30; int a[N][N];int dx[] = {1, 0, -1, 0}, dy[] = {0, -1, 0, 1};int main() {int n;cin >> n;int x = 0, y = n - 1, d = 0;for (int i = 1; i <= n * n; i++) {a[x][y] = i;int xx = x + dx[d], yy = y + dy[d];if (xx < 0 || xx >= n || yy < 0 || yy >= n || a[xx][yy]) {d = (d + 1) % 4;xx = x + dx[d], yy = y + dy[d];}x = xx, y = yy;}for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {cout << a[i][j] << " ";}cout << endl;}return 0; }總結
以上是生活随笔為你收集整理的AcWing 756. 蛇形矩阵的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何对腾达ac7路由器进行设置
- 下一篇: 创维汽车首款轿车 SKYHOME 首发亮