কম্পিউটার

C++ এর একটি বিন্দু থেকে শুরু করে একটি সর্পিল আকারে একটি ম্যাট্রিক্স প্রিন্ট করুন


এই সমস্যায়, আমরা একটি 2d ​​ম্যাট্রিক্স এবং একটি বিন্দু P(c,r)। আমাদের কাজ হল ম্যাট্রিক্সের সমস্ত উপাদানকে একটি সর্পিল আকারে (ঘড়ির কাঁটার বিপরীতে) মুদ্রণ করা যা একটি নির্দিষ্ট বিন্দু P থেকে শুরু হয়।

আমাদের সমস্যা বোঝার জন্য একটি উদাহরণ নেওয়া যাক,

Input: matrix[][] = {{3, 5, 7} }
Output:

এই সমস্যাটি সমাধান করতে, আমরা মুদ্রণের উপাদানগুলির জন্য 4টি লুপ ব্যবহার করি। প্রতিটি লুপ তার নিজস্ব দিকনির্দেশের উপাদান প্রিন্ট করে। আমরা p পয়েন্ট থেকে আমাদের মুদ্রণ শুরু করব এবং সর্পিল আকারে মুদ্রণ করতে যাব।

উদাহরণ

আমাদের সমাধানের বাস্তবায়ন দেখানোর জন্য প্রোগ্রাম

#include <iostream>
using namespace std;
const int MAX = 100;
void printSpiralMatrix(int mat[][MAX], int r, int c) {
   int i, a = 0, b = 2;
   int low_row = (0 > a) ? 0 : a;
   int low_column = (0 > b) ? 0 : b - 1;
   int high_row = ((a + 1) >= r) ? r - 1 : a + 1;
   int high_column = ((b + 1) >= c) ? c - 1 : b + 1;
   while ((low_row > 0 - r && low_column > 0 - c)) {
      for (i = low_column + 1; i <= high_column && i < c && low_row >= 0; ++i)
         cout<<mat[low_row][i]<<" ";
      low_row -= 1;
      for (i = low_row + 2; i <= high_row && i < r && high_column < c; ++i)
         cout<<mat[i][high_column]<<" ";
      high_column += 1;
      for (i = high_column - 2; i >= low_column && i >= 0 && high_row < r; --i)
         cout << mat[high_row][i]<<" ";
      high_row += 1;
      for (i = high_row - 2; i > low_row && i >= 0 && low_column >= 0; --i)
         cout<<mat[i][low_column]<<" ";
      low_column -= 1;
   }
   cout << endl;
}
int main() {
   int mat[][MAX] = {
      { 1, 4, 7 },
      { 2, 5, 8 },
      { 3, 6, 9 }
   };
   int r = 3, c = 3;
   cout<<"Sprial traversal of matrix starting from point "<<r<<", "<<c<<" is :\n";
   printSpiralMatrix(mat, r, c);
}

আউটপুট

বিন্দু 3, 3 থেকে শুরু হওয়া ম্যাট্রিক্সের স্প্রিয়াল ট্রাভার্সাল হল −

7 8 5 4 9 6 3 2 1

  1. C++ এ স্পাইরাল ম্যাট্রিক্স III

  2. C++ এ স্পাইরাল ম্যাট্রিক্স

  3. একটি প্রদত্ত ম্যাট্রিক্স C++ এ ঘড়ির কাঁটার বিপরীতে সর্পিল আকারে প্রিন্ট করুন

  4. একটি প্রদত্ত উত্স থেকে একটি গন্তব্য C++ এ সমস্ত পথ প্রিন্ট করুন