चुनौतियों पर वापस जाएँ
मध्यम 0 हल किए गए 0% स्वीकृति

राइट-त्रिभुज गुणनफल

दिए गए परिमाप वाले पूर्णांक राइट-त्रिभुज की सबसे बड़ी भुजाओं के गुणनफल को खोजें।

आप क्या सीखेंगे

  • परिमाप से पूर्णांक समकोण त्रिभुज खोजना
  • तीन लूप को दो में घटाना
  • पाइथागोरस की शर्त जाँचना

समस्या

ऐसे धनात्मक पूर्णांक a < b < c खोजें जिनके लिए a² + b² = c² और a + b + c = perimeter हो। पात्र त्रिभुजों में सबसे बड़ा गुणनफल a × b × c लौटाएँ, या यदि कोई भी नहीं है तो −1 लौटाएँ। यह निश्चित परिमाप वाले मूल कार्य का सामान्यीकरण है और कई उत्तरों को स्पष्ट रूप से संभालता है।

pythagorean_product(perimeter) को लागू करें।

इनपुट

perimeter: तीनों भुजाओं का आवश्यक योग।

आउटपुट

सबसे बड़ा गुणनफल लौटाएँ, या यदि कोई त्रिभुज पात्र नहीं है तो −1 लौटाएँ।

सीमाएँ

3 ≤ perimeter ≤ 100,000। गुणनफल signed 64-bit पूर्णांकों में समा जाता है।

उदाहरण

उदाहरण 1
इनपुट:
perimeter = 30

अपेक्षित आउटपुट:
expected = 780
इनपुट:
long long perimeter = 30;

अपेक्षित आउटपुट:
long long expected = 780;
इनपुट:
long perimeter = 30;

अपेक्षित आउटपुट:
long expected = 780;

व्याख्या

त्रिभुज (5, 12, 13) है: 25 + 144 = 169 और 5 + 12 + 13 = 30। इसका गुणनफल 780 है।

उदाहरण 2
इनपुट:
perimeter = 11

अपेक्षित आउटपुट:
expected = -1
इनपुट:
long long perimeter = 11;

अपेक्षित आउटपुट:
long long expected = -1;
इनपुट:
long perimeter = 11;

अपेक्षित आउटपुट:
long expected = -1;

व्याख्या

कोई भी बढ़ते हुए धनात्मक पूर्णांक राइट-त्रिभुज भुजाएँ 11 का योग नहीं बनातीं।

कैसे हल करें

पहले खुद कोशिश करें, फिर एक-एक करके संकेत खोलें।

संकेत 1

कुछ ही perimeters right triangle बना सकते हैं, इसलिए पहले side-sum constraint से search narrow करो।

संकेत 2

हर possible shortest side के लिए, perimeter से बाकी दो sides derive करो और right-triangle condition check करो।

संकेत 3

एक से ज़्यादा triangle fit हो सकते हैं; सबसे बड़ा product रखो और कुछ valid न मिले तो no-solution return करो।

अपेक्षित जटिलता

समय O(perimeter^2), अतिरिक्त स्थान O(1)

संदर्भ

यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।

दूसरों से सीखें

समुदाय समाधान

अभी तक कोई प्रकाशित समाधान नहीं। पहला साझा करने के लिए इस चुनौती को हल करें।