हमें एक त्रिभुज का परिमाप P दिया गया है। परिमाप त्रिभुज की सभी भुजाओं का योग है। लक्ष्य उन समकोण त्रिभुजों की संख्या ढूंढना है जिन्हें बनाया जा सकता है जिनका वही परिमाप है।
यदि त्रिभुज की भुजाएं a, b और c हैं। तो a + b + c = P और a² + b² = c² (किसी भी a, b, और c के संयोजन के लिए पाइथागोरस प्रमेय)
हम इसे a को 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² + b² = c² को संतुष्ट करते हैं (साथ ही किन्हीं दो का योग > तीसरा) 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² + b² = c² को संतुष्ट कर सके।
नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण
हम एक पूर्णांक वेरिएबल perimeter लेते हैं जो दिए गए परिमाप का मान स्टोर करता है।
फंक्शन rightTriangles(int p) परिमाप को इनपुट के रूप में लेता है और बनाए जा सकने वाले समकोण त्रिभुजों की कुल संख्या लौटाता है।
वेरिएबल count समकोण त्रिभुजों की संख्या स्टोर करता है, प्रारंभ में 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; ac && b+c>a && a+c>b) //त्रिभुज के लिए शर्त{ if( (a*a+b*b)==c*c ) //समकोण त्रिभुजों के लिए पाइथागोरस नियम { ++count; } } } } return count; } int main(){ int perimeter= 12; cout << "बनाए जा सकने वाले समकोण त्रिभुजों की कुल संख्या: "<<rightTriangles(perimeter); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा -
बनाए जा सकने वाले समकोण त्रिभुजों की कुल संख्या: 1