কম্পিউটার

C++ এ একটি সমবাহু ত্রিভুজে খোদিত স্বতন্ত্র আয়তক্ষেত্রের গণনা


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

C++ এ একটি সমবাহু ত্রিভুজে খোদিত স্বতন্ত্র আয়তক্ষেত্রের গণনা

আসুন উদাহরণ দিয়ে বুঝতে পারি

ইনপুট − পার্শ্ব=3

আউটপুট − একটি সমবাহু ত্রিভুজে খোদিত স্বতন্ত্র আয়তক্ষেত্রের সংখ্যা হল − 1

ব্যাখ্যা − উপরের চিত্রটি আয়তক্ষেত্র দেখায়।

ইনপুট − পার্শ্ব=10

আউটপুট − একটি সমবাহু ত্রিভুজে খোদিত স্বতন্ত্র আয়তক্ষেত্রের সংখ্যা হল − 200

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

উপরের চিত্র থেকে দেখা যাচ্ছে যে বিকল্প স্তরের বিন্দুগুলির মধ্যে অনুভূমিক প্রান্তগুলি থাকবে৷

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

  • একটি পূর্ণসংখ্যা ভেরিয়েবল হিসাবে সাইড ইনপুট করুন এবং আরও প্রক্রিয়াকরণের জন্য এটিকে ফাংশনে পাস করুন

  • গণনা, টেম্প এবং চেক হিসাবে অস্থায়ী ভেরিয়েবল নিন।

  • পাশগুলো বিজোড় হলে চেক করুন তারপর i থেকে সাইডের জন্য লুপ শুরু করুন - 1 যতক্ষণ না i 1 এর থেকে বড় হয়

  • লুপের ভিতরে, IF i &1 চেক করুন তারপর temp (পার্শ্ব - i)/2 হিসাবে সেট করুন এবং চেককে (i * (i + 1))/2 হিসাবে সেট করুন এবং গণনা চেক * temp ELSE হিসাবে সেট করুন, temp (পাশগুলি) হিসাবে সেট করুন - 1) - i)/2 এবং চেক হিসাবে সেট করুন (i * ( i + 1))/2 এবং চেক * টেম্প হিসাবে গণনা সেট করুন

  • অন্যথায়, যদি পাশগুলো জোড় হয় তাহলে i এর সাথে সাইড হওয়ার জন্য আরেকটি লুপ শুরু করুন - 1 এবং i 1 এর থেকে বড়।

  • লুপের ভিতরে, IF i &1 চেক করুন তারপর temp সেট করুন (পার্শ্ব - 1) - i ) / 2 এবং চেক হিসাবে সেট করুন (i * (i + 1)) / 2 এবং চেক হিসাবে গণনা সেট করুন * temp ELSE temp হিসাবে সেট করুন (পার্শ্ব - i) / 2 এবং চেক হিসাবে সেট করুন (i * (i + 1)) / 2 এবং চেক * টেম্প হিসাবে গণনা সেট করুন।

  • রিটার্ন গণনা

  • ফলাফল প্রিন্ট করুন।

উদাহরণ

#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++ এ ষড়ভুজে খোদিত বৃহত্তম ত্রিভুজের ক্ষেত্রফল