Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी ++ कोड आंतरिक बॉक्स का केंद्र खोजने के लिए

मान लीजिए कि हमारे पास n x m आकार का एक मैट्रिक्स है। कोशिकाएं या तो 'W' सफेद या 'B' काली होती हैं। टेबल के अंदर विषम लंबाई के कुछ वर्ग को काले रंग से रंगा गया था। हमें इस वर्ग का केंद्र खोजना होगा।

तो, अगर इनपुट पसंद है

W डब्ल्यू बी बी बी डब्ल्यू
W डब्ल्यू बी बी बी डब्ल्यू
W डब्ल्यू बी बी बी डब्ल्यू
W डब्ल्यू डब्ल्यू डब्ल्यू डब्ल्यू डब्ल्यू
W डब्ल्यू डब्ल्यू डब्ल्यू डब्ल्यू डब्ल्यू

तो आउटपुट (3, 1) होगा।

कदम

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

n := row count of matrix
m := column count of matrix
cnt := 0
X := 0
Y := 0
for initialize i := 0, when i < n, update (increase i by 1), do:
   for initialize j := 0, when j < m, update (increase j by 1),
do:
      if matrix[i, j] is same as 'B', then:
         increase cnt by 1
         X := X + i
         Y := Y + j
X := X / cnt
Y := Y / cnt
return (Y, X)

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

#include <bits/stdc++.h>
using namespace std;
void solve(vector<vector<char>> matrix){
   int n = matrix.size();
   int m = matrix[0].size();
   int cnt = 0, X = 0, Y = 0;
   for (int i = 0; i < n; i++){
      for (int j = 0; j < m; j++)
         if (matrix[i][j] == 'B')
            cnt++, X += i, Y += j;
   }
   X /= cnt;
   Y /= cnt;
   printf("%d, %d\n", Y, X);
}
int main(){
   vector<vector<char>> matrix = { { 'W', 'W', 'B', 'B', 'B', 'W' },
      { 'W', 'W', 'B', 'B', 'B', 'W' }, { 'W', 'W', 'B', 'B', 'B', 'W' },
      { 'W', 'W', 'W', 'W', 'W', 'W' }, { 'W', 'W', 'W', 'W', 'W', 'W' } };
   solve(matrix);
}

इनपुट

{ { 'W', 'W', 'B', 'B', 'B', 'W' },
   { 'W', 'W', 'B', 'B', 'B', 'W' }, { 'W', 'W', 'B', 'B', 'B', 'W' },
   { 'W', 'W', 'W', 'W', 'W', 'W' }, { 'W', 'W', 'W', 'W', 'W', 'W' } }

आउटपुट

3, 1

  1. न्यूनतम अंकगणित माध्य विचलन खोजने के लिए C++ कोड

    मान लीजिए कि हमारे पास 3 तत्वों के साथ एक सरणी ए है। ए [1] दो तत्वों ए [0] और ए [3] का अंकगणितीय माध्य है यदि ए [0] + ए [2] =2 * ए [1]। तीन संख्याओं d(A[0], A[1], A[2]) का अंकगणित माध्य विचलन है|A[0] + A[2] - 2*A[1]|। हम निम्नलिखित संक्रियाओं को कितनी भी बार कर सकते हैं:सूचकांक {0, 1, 2} से दो अनुक्

  1. C++ कोड बैटरी कॉम्बो की संख्या का पता लगाने के लिए

    मान लीजिए, हमारे पास n बैटरियां हैं जिनका अधिकतम 5 बार उपयोग किया जा सकता है। हमारे पास कुछ डिवाइस हैं जिन्हें तीन बैटरी की आवश्यकता होती है और डिवाइस के प्रत्येक उपयोग से बैटरी की उपयोग संख्या 1 बढ़ जाती है। यदि हमें उपकरणों को k बार उपयोग करना है, तो हमें यह पता लगाना होगा कि हम डिवाइस को पावर देन

  1. सी++ में क्रमपरिवर्तन खोजें

    मान लीजिए कि हमारे पास एक गुप्त हस्ताक्षर है जिसमें D और I वर्ण शामिल हैं। D दो संख्याओं के बीच घटते संबंध को दर्शाता है, I दो संख्याओं के बीच बढ़ते संबंध को दर्शाता है। और गुप्त हस्ताक्षर का निर्माण एक विशेष पूर्णांक सरणी द्वारा किया गया था, जिसमें विशिष्ट रूप से 1 से n तक की सभी भिन्न संख्याएँ होत