কম্পিউটার

C++ এ Modified Knight দ্বারা পৌঁছানো সম্ভব এমন সমস্ত সম্ভাব্য অবস্থান গণনা করুন


এই টিউটোরিয়ালে, আমরা মডিফাইড নাইট দ্বারা পৌঁছানোর সম্ভাব্য অবস্থানের সংখ্যা খুঁজে বের করার জন্য একটি প্রোগ্রাম নিয়ে আলোচনা করব৷

এর জন্য আমাদের একটি 8*8 চেসবোর্ড দেওয়া হবে। আমাদের কাজ হল পরিবর্তিত নাইট প্রদত্ত ধাপের সংখ্যা দিয়ে কতগুলি অবস্থান নিতে পারে তা খুঁজে বের করা।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
//finding the positions
void findSteps(int current_row, int current_column,int curr, int board_size, int steps,int* visited){
   //bound checking
   if (current_row >= board_size || current_row < 0
      || current_column >= board_size || current_column < 0
      || curr > steps) {
      return;
   }
   if (curr == steps) {
      *((visited + (current_row)*board_size) + current_column) = 1;
      return;
   }
   findSteps(current_row - 2, current_column - 1,curr + 1, board_size, steps, visited);
   findSteps(current_row - 2, current_column + 1,curr + 1, board_size, steps, visited);
   findSteps(current_row - 1, current_column - 2,curr + 1, board_size, steps, visited);
   findSteps(current_row - 1, current_column - 1,curr + 1, board_size, steps, visited);
   findSteps(current_row - 1, current_column + 1,curr + 1, board_size, steps, visited);
   findSteps(current_row - 1, current_column + 2,curr + 1, board_size, steps, visited);
   findSteps(current_row + 1, current_column - 2,curr + 1, board_size, steps, visited);
   findSteps(current_row + 1, current_column - 1,curr + 1, board_size, steps, visited);
   findSteps(current_row + 1, current_column + 1,curr + 1, board_size, steps, visited);
   findSteps(current_row + 1, current_column + 2,curr + 1, board_size, steps, visited);
   findSteps(current_row + 2, current_column - 1,curr + 1, board_size, steps, visited);
   findSteps(current_row + 2, current_column + 1,curr + 1, board_size, steps, visited);
   return;
}
int countSteps(int current_row, int current_column,int board_size, int steps){
   int visited[board_size][board_size];
   for (int i = 0; i < board_size; i++) {
      for (int j = 0; j < board_size; j++) {
         visited[i][j] = 0;
      }
   }
   int answer = 0;
   findSteps(current_row, current_column, 0,board_size, steps, (int*)visited);
   for (int i = 0; i < board_size; i++) {
      for (int j = 0; j < board_size; j++) {
         if (visited[i][j] == 1) {
            answer++;
         }
      }
   }
   return answer;
}
int main(){
   int board_size = 8, steps = 1;
   int current_row = 4, current_column = 4;
   cout << countSteps(current_row, current_column,board_size, steps);
   return 0;
}

আউটপুট

12

  1. সমস্ত N সংখ্যার সংখ্যার গণনা যেমন num + Rev(num) =10^N - 1 C++ এ

  2. X এর সমস্ত সম্ভাব্য মানের গণনা যেমন C++ এ A % X =B

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

  4. C++ এ কাউন্ট ডিরেঞ্জমেন্ট (পরিবর্তন যাতে কোনো উপাদান তার আসল অবস্থানে উপস্থিত হয় না)