আমাদের একটি ত্রিভুজের একটি পরিধি 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