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

C++ কোড: বিশেষ ম্যাট্রিক্স উপাদানগুলোর যোগফল বের করা

একটি n×n বর্গ ম্যাট্রিক্স দেওয়া আছে। নিচের উপাদানগুলোকে "বিশেষ উপাদান" বলা হয়:

  • প্রধান ডায়াগোনালের উপাদানগুলো
  • দ্বিতীয় ডায়াগোনালের উপাদানগুলো
  • মাঝের সারিটি (n/2 তম সারি) এর উপাদানগুলো
  • মাঝের কলামটি (n/2 তম কলাম) এর উপাদানগুলো

এই বিশেষ উপাদানগুলোর যোগফল বের করতে হবে।

সমাধানের ধাপসমূহ

নেস্টেড লুপ দিয়ে ম্যাট্রিক্স ট্রাভার্স করুন। প্রতিটি উপাদানের জন্য চেক করুন: i==j (প্রধান ডায়াগোনাল), i+j==n-1 (দ্বিতীয় ডায়াগোনাল), i==n/2 (মাঝের সারি), j==n/2 (মাঝের কলাম)। যেকোনো শর্ত পূরণ করলে যোগফলে যোগ করুন।

উদাহরণ

#include <bits/stdc++.h> 
using namespace std; 

void solve(int n, vector<vector<int>> mat) { 
    int res = 0; 
    for (int i = 0; i < n; i++) 
        for (int j = 0; j < n; j++) { 
            if (i == j || i == n / 2 || j == n / 2 || i + j == n - 1) 
                res += mat[i][j]; 
        } 
    cout << res << endl; 
} 

int main() { 
    int n = 4; 
    vector<vector<int>> mat = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16}}; 
    solve(n, mat); 
    return 0; 
}

ইনপুট

4, {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16}}

আউটপুট

107

ব্যাখ্যা

4×4 ম্যাট্রিক্সের প্রধান ডায়াগোনাল: 1,6,11,16। দ্বিতীয় ডায়াগোনাল: 4,7,10,13। মাঝের সারি (২য়): 9,10,11,12। মাঝের কলাম (২য়): 3,7,11,15। ডুপ্লিকেট বাদ দিয়ে যোগফল = 107।

  1. C++ STL-এ ভেক্টারের এলিমেন্টগুলোর যোগফল বের করা

  2. C++-এ STL ব্যবহার করে অ্যারে এলিমেন্টগুলোর যোগফল (Sum) বের করা

  3. C++-এ ম্যাট্রিক্সের মিন ভেক্টর (Mean Vector) নির্ণয়

  4. C++ প্রোগ্রাম: ম্যাট্রিক্সের প্রতিটি রো এবং কলামের যোগফল বের করা