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

C++-এ সমবাহু ত্রিভুজে অন্তর্ভুক্ত স্বতন্ত্র আয়তের সংখ্যা গণনা করুন


আমাদের একটি সমবাহু ত্রিভুজ দেওয়া আছে পার্শ্ব দৈর্ঘ্যের সাথে। লক্ষ্য হল ত্রিভুজের ভেতরে কতগুলো স্বতন্ত্র আয়ত থাকতে পারে যাতে আয়তের অনুভূমিক পাশগুলো বেসের সমান্তরাল থাকে এবং আয়তের সব কোণ বিন্দুগুলো দাঁড়ায় (উপরের ছবি অনুযায়ী)।

C++-এ সমবাহু ত্রিভুজে অন্তর্ভুক্ত স্বতন্ত্র আয়তের সংখ্যা গণনা করুন

উদাহরণ দিয়ে বুঝি:

ইনপুট − sides=3

আউটপুট − সমবাহু ত্রিভুজে অন্তর্ভুক্ত স্বতন্ত্র আয়তের সংখ্যা: 1

ব্যাখ্যা − উপরের ছবিতে আয়টাটি দেখানো হয়েছে।

ইনপুট − sides=10

আউটপুট − সমবাহু ত্রিভুজে অন্তর্ভুক্ত স্বতন্ত্র আয়তের সংখ্যা: 200

প্রোগ্রামে ব্যবহৃত পদ্ধতি

উপরের ছবি থেকে বোঝা যায় অনুভূমিক এজগুলো আলটারনেট লেভেলের বিন্দুগুলোর মধ্যে থাকে।

বিন্দুগুলো লেভেল 0-1, 1-2 ... n-n+1 পর্যন্ত গণনা করা যায়।

  • পার্শ্ব দৈর্ঘ্য ইনপুট নিন এবং ফাংশনে পাস করুন
  • count, temp, check ভেরিয়েবল নিন
  • যদি পার্শ্ব বিজোড় হয়, i = sides-2 থেকে ১ পর্যন্ত লুপ চালান
  • লুপের ভেতরে যদি i বিজোড় হয়, temp = (sides-i)/2, check = i*(i+1)/2, count += check*temp; অন্যথায় temp = ((sides-1)-i)/2, check = i*(i+1)/2, count += check*temp
  • যদি পার্শ্ব জোড় হয়, i = sides-2 থেকে ১ পর্যন্ত লুপ চালান
  • লুপের ভেতরে যদি i বিজোড় হয়, temp = ((sides-1)-i)/2, check = i*(i+1)/2, count += check*temp; অন্যথায় temp = (sides-i)/2, check = i*(i+1)/2, count += check*temp
  • count রিটার্ন করুন
  • ফলাফল প্রিন্ট করুন

উদাহরণ

#include <iostream> 
using namespace std; 

int rec_inside_equi(int sides){ 
    int count = 0, temp, check; 
    if(sides%2 != 0){ 
        for(int i = sides - 2; i >= 1; i--){ 
            if (i & 1){ 
                temp = (sides - i) / 2; 
                check = (i * (i + 1)) / 2; 
                count += check * temp; 
            } 
            else{ 
                temp = ((sides - 1) - i) / 2; 
                check = (i * (i + 1)) / 2; 
                count += check * temp; 
            } 
        } 
    } 
    else{ 
        for(int i = sides - 2; i >= 1; i--){ 
            if (i & 1){ 
                temp = ((sides - 1) - i) / 2; 
                check = (i * (i + 1)) / 2; 
                count += check * temp; 
            } 
            else{ 
                temp = (sides - i) / 2; 
                check = (i * (i + 1)) / 2; 
                count += check * temp; 
            } 
        } 
    } 
    return count; 
} 

int main(){ 
    int sides = 4; 
    cout << "Count of distinct rectangles inscribed in an equilateral triangle are: " << rec_inside_equi(sides); 
    return 0; 
}

আউটপুট

উপরের কোড রান করলে নিচের আউটপুট আসবে:

Count of distinct rectangles inscribed in an equilateral triangle are: 4

  1. C++ প্রোগ্রাম: হেক্সাগনে আঁকা সর্বোচ্চ ত্রিভুজের ক্ষেত্রফল

  2. C++ তে সর্টেড অ্যারেতে এবসোলিউট ডিস্টিংক্ট কাউন্ট

  3. C++-এ সমবাহু ত্রিভুজের সার্কামফারেন্স সার্কেলের এলাকা বের করার প্রোগ্রাম

  4. C++-এ হেক্সাগনে ইনস্ক্রাইবড সবচেয়ে বড় ট্রায়্যাঙ্গেলের এলিয়া