কম্পিউটার

C++ তে বিশপ যে সমস্ত বর্গক্ষেত্র পরিদর্শন করতে পারে তার মোট সংখ্যা গণনা করুন


8 X 8 গ্রিড হিসাবে উপস্থাপিত একটি দাবাবোর্ডে আমাদের সারি এবং কলাম অবস্থানের আকারে বিশপের অবস্থান দেওয়া হয়। লক্ষ্য হল বিশপ এক পদক্ষেপে পরিদর্শন করতে পারে এমন মোট স্কোয়ারের সংখ্যা খুঁজে বের করা। আমরা জানি বিশপ সব দিকে যেতে পারে (তির্যকভাবে বাম উপরে/নীচে এবং ডান উপরে/নীচে)।

C++ তে বিশপ যে সমস্ত বর্গক্ষেত্র পরিদর্শন করতে পারে তার মোট সংখ্যা গণনা করুন

উদাহরণস্বরূপ

ইনপুট

row = 5, column = 4

আউটপুট

Count of total number of squares that can be visited by Bishop in one move
are: 13

ব্যাখ্যা

As shown in above figure the squares that Bishop can cover are 9.

ইনপুট

row = 1, column = 1

আউটপুট

Count of total number of squares that can be visited by Bishop in one move
are: 7

ব্যাখ্যা

As this is the corner most position, then Bishop can only cover one
diagonal which can have a maximum of 7 squares.

নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি

এই পদ্ধতিতে আমরা অনুভূমিক এবং উল্লম্ব সর্বাধিক এবং সর্বনিম্ন বর্গ অবস্থান ব্যবহার করে তির্যক বর্গক্ষেত্র গণনা করব৷

  • বিশপের অবস্থানের জন্য পূর্ণসংখ্যার সারি এবং কলাম নিন।

  • ফাংশন স্কোয়ার_ভিজিটেড(int first, int second) বিশপের অবস্থান নেয় এবং এটি এক চালে পরিদর্শন করতে পারে এমন স্কোয়ারের গণনা প্রদান করে।

  • 0 হিসাবে প্রাথমিক গণনা নিন।

  • বাম অবস্থানের সর্বনিম্ন হল সারি বা কলাম অবস্থানের সর্বনিম্ন −1৷

  • বাম অবস্থানের সর্বোচ্চ হল 8 − সর্বোচ্চ সারি বা 9−কলাম অবস্থান।

  • সঠিক অবস্থানের সর্বনিম্ন হল সারি বা 9−কলাম অবস্থান −1।

  • সঠিক অবস্থানের সর্বোচ্চ হল 8 − সর্বোচ্চ সারি বা কলাম অবস্থান।

  • মোট বর্গক্ষেত্র হবে উপরের গণনা করা অবস্থানের যোগফল।

  • ফলাফল হিসাবে রিটার্ন গণনা।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int squares_visited(int first, int second){
   int count = 0;
   int min_left = min(first, second) − 1;
   int max_left = 8 − max(first, 9 − second);
   int max_right = 8 − max(first, second);
   int min_right = min(first, 9 − second) − 1;
   count = min_left + min_right + max_right + max_left;
   return count;
}
int main(){
   int row = 3, column = 3;
   cout<<"Count of total number of squares that can be visited by Bishop in one move are: "<<squares_visited(row, column);
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
Count of total number of squares that can be visited by Bishop in one move are: 11

  1. কিভাবে C++ ব্যবহার করে ওপেনসিভিতে ফ্রেমের মোট সংখ্যা গণনা করবেন?

  2. C++ তে বিশপ যে সমস্ত বর্গক্ষেত্র পরিদর্শন করতে পারে তার মোট সংখ্যা গণনা করুন

  3. C++ এ একটি আয়তক্ষেত্রে বর্গক্ষেত্রের সংখ্যা গণনা করুন

  4. C++ এ সমকোণ সমদ্বিবাহু ত্রিভুজে ফিট হতে পারে এমন সর্বাধিক সংখ্যক বর্গক্ষেত্র