C++程式找出網格中邊界單元格的數量


假設,我們得到一個維度為 h * w 的網格。我們需要用特殊顏色給網格的邊界單元格(即網格的最外層單元格)著色。我們需要找出我們需要著色的邊界單元格的數量。

問題類別

程式設計中的各種問題可以透過不同的技術來解決。為了解決一個問題,我們首先必須設計一個演算法,為此我們需要詳細研究特定問題。如果同一個問題反覆出現,則可以使用遞迴方法;或者,我們也可以使用迭代結構。可以使用 if-else 和 switch case 等控制語句來控制程式中邏輯的流程。有效地使用變數和資料結構可以提供更簡單的解決方案,以及輕量級、低記憶體需求的程式。我們必須檢視現有的程式設計技術,例如分治法、貪心演算法、動態規劃,並找出它們是否可以使用。這個問題可以透過一些基本的邏輯或蠻力方法來解決。請參閱以下內容以更好地理解該方法。

因此,如果我們問題的輸入類似於 h = 4,w = 4,則輸出將為 12。

步驟

為了解決這個問題,我們將遵循以下步驟:

return (2 * ((h - 2) + 2 * (w - 2)))

示例

讓我們看看以下實現以更好地理解:

#include<bits/stdc++.h>
using namespace std;
void solve(int h, int w) {
   cout<< 2 * (h - 2) + 2 * (w - 2) + 4 ;
}
int main() {
   int h = 4, w = 4;
   solve(h, w);
   return 0;
}

輸入

4, 4

輸出

12

更新於: 2022年4月7日

310 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.