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.