কম্পিউটার টিউটোরিয়াল

সি প্রোগ্রামিং-এ ম্যাট্রিক্স ডায়াগোনাল প্যাটার্নে সংখ্যা প্রিন্ট করা


n×n সাইজের ম্যাট্রিক্সকে ডায়াগোনাল প্যাটার্নে প্রিন্ট করতে হবে।

যদি n = 3 হয়, ডায়াগোনাল প্যাটার্নে ম্যাট্রিক্স প্রিন্ট করলে:

সি প্রোগ্রামিং-এ ম্যাট্রিক্স ডায়াগোনাল প্যাটার্নে সংখ্যা প্রিন্ট করা

আউটপুট:

সি প্রোগ্রামিং-এ ম্যাট্রিক্স ডায়াগোনাল প্যাটার্নে সংখ্যা প্রিন্ট করা

উদাহরণ

Input: 3
Output:
1 2 4
3 5 7
6 8 9

Input: 4
Output:
1 2 4 7
3 5 8 11
6 9 12 14
10 13 15 16

অ্যাপ্রোচ: আলাদা ম্যাট্রিক্স বানিয়ে সেটিতে প্যাটার্ন স্টোর করলে কমপ্লেক্সিটি বড়ে। বরং:

  • N×N সাইজের একটি ম্যাট্রিক্স তৈরি করুন যা প্যাটার্ন সংরক্ষণ করবে।
  • আপার ট্রায়্যাঙ্গেল (upper triangle) এলিমেন্টগুলো স্টোর করুন। ডায়াগোনালে নিচে যাওয়ার সাথে সাথে রো ইন্ডেক্স ১ বাড়ে, কলাম ইন্ডেক্স ১ কমে।
  • আপার ট্রায়্যাঙ্গেল কমপ্লিট হলে, লোয়ার ট্রায়্যাঙ্গেলও একই লজিক দিয়ে স্টোর করুন।

অ্যালগরিদম

int printdiagonal(int n)
START
STEP 1: DECLARE mat[n][n], i, j, k, d=1, m
STEP 2: LOOP i = 0 to n-1
    j = i, k = 0
    LOOP j = i down to 0
        mat[k][j] = d; d++; k++;
    END LOOP
END LOOP
STEP 3: LOOP k = 1 to n-1
    i = m = k
    LOOP j = n-1 down to m
        mat[i][j] = d; d++; i++;
    END FOR
END FOR
STEP 4: LOOP i = 0 to n-1
    LOOP j = 0 to n-1
        PRINT mat[i][j]
    END FOR
    PRINT NEWLINE
END FOR
STOP

সি প্রোগ্রাম

#include <stdio.h>

int printdiagonal(int n) {
    int mat[n][n], i, j, k, d = 1, m;
    for (i = 0; i < n; i++) {
        j = i; k = 0;
        for (j = i; j >= 0; j--) {
            mat[k][j] = d;
            d++; k++;
        }
    }
    for (k = 1; k < n; k++) {
        i = m = k;
        for (j = n - 1; j >= m; j--) {
            mat[i][j] = d;
            d++; i++;
        }
    }
    for (i = 0; i < n; i++) {
        for (j = 0; j < n; j++)
            printf("%d ", mat[i][j]);
        printf("\n");
    }
}

int main() {
    int n = 3;
    printdiagonal(n);
    return 0;
}

আউটপুট

1 2 4
3 5 7
6 8 9

  1. C প্রোগ্রামিং-এ প্রাকৃতিক সংখ্যা কলাম-ওয়াইজ (Column-wise) প্রিন্ট করা

  2. C প্রোগ্রামিং-এ নাম্বার প্যাটার্ন প্রিন্ট করা (দুই ধরনের প্যাটার্ন)

  3. সি প্রোগ্রামিং-এ স্নেক প্যাটার্নে ম্যাট্রিক্স প্রিন্ট করা

  4. C প্রোগ্রামে দেওয়া অ্যারে থেকে নিম্ন ত্রিভুজাকার ম্যাট্রিক্স প্যাটার্ন প্রিন্ট করা