C++程式:查詢工作元件的數量
假設有一個電子控制板,它顯示系統中所有元件的狀態。每個元件的狀態都用兩個LED燈表示;如果其中任何一個亮著,則該元件正在工作。該板上,有n行LED燈,每行有m個元件狀態;這意味著每行有2*m個LED燈。“grid”陣列表示電路板的狀態,如果燈亮則為'1',否則為'0'。我們必須根據給定的電路板狀態找出當前正在工作的元件數量。
問題類別
程式設計中的各種問題可以透過不同的技術來解決。為了解決問題,我們首先必須設計一個演算法,為此我們必須詳細研究特定問題。如果同一個問題反覆出現,則可以使用遞迴方法;或者,我們也可以使用迭代結構。可以使用if-else和switch語句等控制語句來控制程式中邏輯的流程。高效地使用變數和資料結構可以提供更簡單的解決方案以及輕量級、低記憶體需求的程式。我們必須檢視現有的程式設計技術,例如分治法、貪心演算法、動態規劃,並確定是否可以使用它們。這個問題可以透過一些基本的邏輯或暴力方法來解決。請閱讀以下內容以更好地理解這種方法。
因此,如果我們問題的輸入類似於n = 3,m = 3,grid =
| 0 | 1 | 0 | 1 | 0 | 0 |
| 1 | 1 | 0 | 1 | 1 | 0 |
| 0 | 0 | 0 | 1 | 0 | 0 |
那麼輸出將是6。
步驟
為了解決這個問題,我們將遵循以下步驟:
ans := 0 for initialize i := 0, when i < n, update (increase i by 1), do: for initialize j := 0, when j < 2 * m, update j = j + 2, do: if grid[i, j] + grid[i, j + 1] > 0, then: (increase ans by 1) print(ans)
示例
讓我們來看下面的實現,以便更好地理解:
#include<bits/stdc++.h>
using namespace std;
void solve(int n, int m, vector<vector<int>> grid) {
int ans = 0;
for(int i = 0; i < n; i++) {
for(int j = 0; j < 2 * m; j = j + 2) {
if (grid[i][j] + grid[i][j + 1] > 0)
ans++;
}
}
cout<< ans;
}
int main() {
int n = 3, m = 3;
vector<vector<int>> grid = {{0, 1, 0, 1, 0, 0}, {1, 1, 0, 1, 1, 0}, {0, 0, 0, 1, 0, 0}};
solve(n, m, grid);
return 0;
}輸入
3, 3, {{0, 1, 0, 1, 0, 0}, {1, 1, 0, 1, 1, 0}, {0, 0, 0, 1, 0, 0}}輸出
6
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP