1. 程式人生 > 其它 >不僅適用於方陣的回形矩陣

不僅適用於方陣的回形矩陣

技術標籤:# ACM基礎

文章目錄


分析

基本情況

在這裡插入圖片描述
這就是全部的基本情況,之後所有都是在此基礎上的變形。

遍歷方式

在這裡插入圖片描述
對應:for (int i = p; i <= n - 1 - p; i++)中是<=(A)還是<(B)
我們採用A方式,而不採用B方式。因為B方式無法處理只有一個時的情況。

跳出條件

  • 設立了兩個跳出判斷。
  • while的跳出是①、④、⑤、⑥
  • if的跳出是②、③

答案

vector<vector<int>> matrix(6, vector<int>(4, 0));
int m = matrix.
size(); // 行 int n = matrix[0].size(); // 列 int count = 0, max_count = m * n; int p = 0; while (count < max_count) { for (int i = p; i <= n - 1 - p; i++) // 上 { matrix[p][i] = ++count; } for (int i = p + 1; i <= m - 1 - p; i++) // 右 { matrix[i][n - 1 - p] = ++count;
} if (count >= max_count) { break; } for (int i = n - 2 - p; i >= p; i--) // 下 { matrix[m - 1 - p][i] = ++count; } for (int i = m - 2 - p; i > p; i--) // 左 { matrix[i][p] = ++count; } p++; } for (int i = 0; i < m; i++) { for
(int j = 0; j < n; j++) printf("%2d ", matrix[i][j]); printf("\n"); }