কম্পিউটার

C++ এ একটি প্রদত্ত পরিধি সহ সম্ভাব্য সমকোণী ত্রিভুজের সংখ্যা গণনা করুন


আমাদের একটি ত্রিভুজের একটি পরিধি P দেওয়া হয়েছে। পরিধি হল ত্রিভুজের সব বাহুর সমষ্টি। লক্ষ্য হল সমকোণী ত্রিভুজের সংখ্যা খুঁজে বের করা যা একই পরিধি বিশিষ্ট।

ত্রিভুজের বাহুগুলো a, b এবং c হলে। তারপর a + b + c =P এবং a2 + b2 =c2 ( a, b, এবং c এর যেকোন সমন্বয়ের জন্য পিথাগোরাস উপপাদ্য)

আমরা 1 থেকে p/2 এবং b থেকে a+1 থেকে p/3 নিয়ে এটি পরীক্ষা করব। তারপর c =p-a-b (a+b+c=p)

সমস্ত সমকোণী ত্রিভুজের জন্য, পিথাগোরাস উপপাদ্য প্রয়োগ করুন। a, b এবং c-এর মানগুলিকেও ত্রিভুজ গঠনের শর্ত পূরণ করতে হবে যেখানে যেকোনো দুটি বাহুর যোগফল সর্বদা তৃতীয় থেকে বেশি হয়৷

উদাহরণ দিয়ে বোঝা যাক।

ইনপুট − পরিধি P=12

আউটপুট − সমকোণী ত্রিভুজের মোট সংখ্যা −1

ব্যাখ্যা

a, b এবং c এর একমাত্র মান যা a+b+c=P এবং a 2 পূরণ করে + b 2 =c 2 (যেকোনো দুই> তৃতীয়াংশের যোগফল) হল 4, 3, এবং 5।

4+3+5=12, 3*3+4*4=5*5 ( 9+16=25 ) এছাড়াও 3+4>5, 4+5>3, 3+5>4

ইনপুট − পরিধি P=10

আউটপুট − সমকোণী ত্রিভুজের মোট সংখ্যা −0

ব্যাখ্যা

a, b এবং c এর কোন মান নেই যা a+b+c=P এবং a 2 কে সন্তুষ্ট করতে পারে + b 2 =c 2

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

  • আমরা একটি পূর্ণসংখ্যা পরিবর্তনশীল পরিধি নিই যা প্রদত্ত পরিসীমার মান সংরক্ষণ করে।

  • ফাংশন rightTriangles(int p) ইনপুট হিসাবে পরিধি নেয় এবং সম্ভাব্য সমকোণী ত্রিভুজের মোট সংখ্যা প্রদান করে।

  • পরিবর্তনশীল গণনা সম্ভাব্য সমকোণী ত্রিভুজের সংখ্যা সংরক্ষণ করে, প্রাথমিকভাবে 0।

  • a=1 থেকে p/2

    এর জন্য লুপ স্টার্ট ব্যবহার করা হচ্ছে
  • আবার b=a+1 থেকে p/3 এর জন্য লুপ স্টার্টের জন্য নেস্টেড ব্যবহার করুন ( সমকোণী ত্রিভুজে দুটি বাহু কখনই সমান হয় না)

  • c=p-a-b গণনা করুন। এর জন্য a,b,c চেক করুন কিনা (a+b>c &&b+c>a &&a+c>b)।

  • এছাড়াও পিথাগোরাসের উপপাদ্য পরীক্ষা করুন যেখানে a*a+b*b==c*c। যদি সত্য বৃদ্ধির সংখ্যা।

  • শেষে রিটার্ন গণনায় একটি প্রদত্ত পরিধির সাথে সম্ভাব্য সমকোণী ত্রিভুজের সংখ্যা থাকে।

  • পছন্দসই ফলাফল হিসাবে রিটার্ন গণনা।

দ্রষ্টব্য − আমরা অনন্য ফলাফলের জন্য a,b এবং c এর শুধুমাত্র একটি সমন্বয়ের জন্য পিথাগোরাস উপপাদ্য পরীক্ষা করব।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int rightTriangles(int p){
   int count = 0;
   int c=0;
   for( int a=1;a<p/2;a++){
      for(int b=1;b<p/3;b++){
         c=p-a-b;
         if( a+b>c && b+c>a && a+c>b) //condition for triangle{
            if( (a*a+b*b)==c*c ) //pythagoras rule for right triangles
               { ++count; }
         }
      }
   }
   return count;
}
int main(){
   int perimeter= 12;
   cout << "Total number of right triangles that can be formed: "<<rightTriangles(perimeter);
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
Total number of right triangles that can be formed: 1

  1. C++ এ প্রদত্ত সংখ্যা সহ অ্যারের উপাদানগুলির গড় ঘটনা গণনা করুন

  2. C++ এ m সমরেখা সহ মোট n বিন্দু সহ ত্রিভুজের গণনা

  3. C++ এ প্রদত্ত সংখ্যার সমান GCD সহ প্রাকৃতিক সংখ্যার জোড়া গণনা করুন

  4. C++ এ প্রদত্ত আকারের আয়তক্ষেত্রের ভিতরে সম্ভাব্য রম্বির সংখ্যা গণনা করুন