কম্পিউটার

ভিতরের বাক্সের কেন্দ্র খুঁজে পেতে C++ কোড


ধরুন আমাদের n x m আকারের একটি ম্যাট্রিক্স আছে। কোষগুলি হয় 'W' হিসাবে সাদা বা 'B' কালো। বিজোড় দৈর্ঘ্যের টেবিলের ভিতরে কিছু বর্গক্ষেত্র কালো আঁকা ছিল। আমাদের এই বর্গক্ষেত্রের কেন্দ্র খুঁজে বের করতে হবে।

সুতরাং, যদি ইনপুট মত হয়

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)।

পদক্ষেপ

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

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++ কোড যার পার্থক্য n

  2. ন্যূনতম গাণিতিক গড় বিচ্যুতি খুঁজে পেতে C++ কোড

  3. ব্যাটারি কম্বো সংখ্যা খুঁজে বের করতে C++ কোড

  4. C++ এ পারমুটেশন খুঁজুন