কম্পিউটার

C# ব্যবহার করে সর্পিল ক্রমে n*n আকারের একটি ম্যাট্রিক্স কীভাবে প্রিন্ট করবেন?


একটি ম্যাট্রিক্সকে সর্পিল ক্রমে ঘোরানোর জন্য, সমস্ত অভ্যন্তরীণ ম্যাট্রিক্স এবং বাইরের ম্যাট্রিক্স আবৃত না হওয়া পর্যন্ত আমাদের নিম্নলিখিতগুলি করতে হবে -

  • পদক্ষেপ1 - উপরের সারির উপাদানগুলি সরান

  • ধাপ ২ - শেষ কলামের উপাদানগুলি সরান

  • ধাপ ৩ - নীচের সারির উপাদানগুলি সরান

  • ধাপ ৪ - প্রথম কলামের উপাদানগুলি সরান

  • ধাপ৫ − একটি অভ্যন্তরীণ ম্যাট্রিক্স থাকাকালীন অভ্যন্তরীণ রিংয়ের জন্য উপরের ধাপগুলি পুনরাবৃত্তি করুন

উদাহরণ

using System;
namespace ConsoleApplication{
   public class Matrix{
      public void PrintMatrixInSpiralOrder(int m, int n, int[,] a){
         int i, k = 0, l = 0;
         while (k < m && l < n){
            for (i = l; i < n; ++i){
               Console.Write(a[k, i] + " ");
            }
            k++;
            for (i = k; i < m; ++i){
               Console.Write(a[i, n - 1] + " ");
            }
            n--;
            if (k < m){
               for (i = n - 1; i >= l; --i){
                  Console.Write(a[m - 1, i] + " ");
               }
               m--;
            }
            if (l < n){
               for (i = m - 1; i >= k; --i){
                  Console.Write(a[i, l] + " ");
               }
               l++;
            }
         }
      }
   }
   class Program{
      static void Main(string[] args){
         Matrix m = new Matrix();
         int R = 3;
         int C = 6;
         int[,] aa = { { 1, 2, 3, 4, 5, 6 },
            { 7, 8, 9, 10, 11, 12 },
            { 13, 14, 15, 16, 17, 18 } };
            m.PrintMatrixInSpiralOrder(R, C, aa);
      }
   }
}

আউটপুট

1 2 3 4 5 6 12 18 17 16 15 14 13 7 8 9 10 11

  1. কিভাবে জাভাস্ক্রিপ্ট ব্যবহার করে একটি পৃষ্ঠা প্রিন্ট করবেন?

  2. অ্যান্ড্রয়েডে Collections.reverse() ব্যবহার করে বিপরীত ক্রমে তালিকার মান কীভাবে প্রিন্ট করবেন?

  3. সি প্রোগ্রাম ব্যবহার করে একটি ম্যাট্রিক্সের ট্রান্সপোজ কিভাবে গণনা করা যায়?

  4. C প্রোগ্রামে O(1) অতিরিক্ত স্থান ব্যবহার করে n x n স্পাইরাল ম্যাট্রিক্স প্রিন্ট করুন।