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

সি++-এ আয়তক্ষেত্রে বর্গের সংখ্যা গণনা

দৈর্ঘ্য L এবং প্রস্থ B বিশিষ্ট একটি আয়তক্ষেত্র দেওয়া আছে যেখানে L>=B। লক্ষ্য হল LxB আকারের আয়তক্ষেত্রে কতগুলো বর্গ আয়োগ করা যায় তা বের করা।

প্রতি LxB আয়তক্ষেত্রে L*B সংখ্যক 1x1 বর্গ থাকে। সর্বোচ্চ বর্গ BxB আকারের। L=B=1 হলে বর্গ=১। L=B=2 হলে বর্গ=১+৪=৫ (১টি 2x2, ৪টি 1x1)। L=B=3 হলে ১+৪+৯=১৪। L=B=4 হলে ১+৪+৯+১৬=৩০।

প্রতি BxB আয়তক্ষেত্রে বর্গের সংখ্যা: for i=1 to B, বর্গ += i*i।

L>B হলে অতিরিক্ত বর্গ যোগ হয়। L=B+1 হলে যোগ হবে L+(L-1)+...+3+2+1 = L(L+1)/2। অতিরিক্ত L-B কলামের জন্য যোগ হবে (L-B)*B(B+1)/2।

মোট বর্গ = BxB-এ বর্গ + (L-B)*B(B+1)/2। সূত্র B(B+1)(2B+1)/6 ব্যবহার করা যেতে পারে।

উদাহরণ

ইনপুট: L=4, B=2

আউটপুট: আয়তক্ষেত্রে বর্গের সংখ্যা: ১১

ব্যাখ্যা: ৮টি 1x1 এবং ৩টি 2x2 বর্গ।

ইনপুট: L=3, B=3

আউটপুট: আয়তক্ষেত্রে বর্গের সংখ্যা: ১৪

ব্যাখ্যা: ৯টি 1x1, ৪টি 2x2, ১টি 3x3।

অ্যাপ্রোচ

  • length এবং breadth ইন্টিজার দিয়ে আয়তক্ষেত্রের মাত্রা।
  • numofSquares(int l, int b) ফাংশন মাত্রা গ্রহণ করে lxb আয়তক্ষেত্রে বর্গের সংখ্যা রিটার্ন করে।
  • সর্বোচ্চ বর্গ BxB: for i=1 to b, squares += i*i।
  • যদি l>b হলে, যোগ হবে (l-b)*b*(b+1)/2।
  • নোট: length >= breadth ধরে রাখা হয়।

উদাহরণ কোড

#include <iostream>
using namespace std;

int numofSquares(int l, int b) {
    int squares = 0;
    for (int i = 1; i <= b; i++) {
        squares += i * i;
    }
    squares += (l - b) * b * (b + 1) / 2;
    return squares;
}

int main() {
    int length = 5, breadth = 4;
    cout << "Count of squares is :" << numofSquares(length, breadth);
    return 0;
}

আউটপুট

Count of squares is : 40
  1. নন-ইনক্রিজিং সাবঅ্রে সংখ্যা গণনা C++-এ

  2. ইন্টিজারে হোল (গোলাকার ছিদ্র) সংখ্যা গণনা C++-এ

  3. C++-এ একটি সংখ্যার ফ্যাক্টোরিয়ালে ট্রেলিং জিরোর সংখ্যা গণনা

  4. C++-এ দिये गये আয়তের ভেতরে সম্ভাব্য রম্বসের সংখ্যা গণনা