इस समस्या में, हमें एक समकोण त्रिभुज की एक भुजा को निरूपित करने वाला एक पूर्णांक दिया जाता है। हमें यह जाँचने की आवश्यकता है कि क्या भुजा a के साथ समकोण त्रिभुज होना संभव है। यदि यह संभव है, तो एक समकोण त्रिभुज की अन्य दो भुजाएँ और कोण ज्ञात कीजिए।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट
a = 5
आउटपुट
Sides : 5, 12, 13 Angles : 67.38, 22.62, 90
स्पष्टीकरण
समकोण की भुजाएँ 5 2 . के रूप में पाई जाती हैं + 12 2 =13 2 और इन भुजाओं का उपयोग करके हम कोणों को पा सकते हैं, पाप -1 (5/13) और 90 - पाप -1 (5/13)।
समाधान दृष्टिकोण
पाइथागोरस प्रमेय का उपयोग करके समस्या का एक सरल समाधान है। हम जानते हैं कि एक समकोण त्रिभुज की भुजाएँ पाइथागोरस प्रमेय का अनुसरण करती हैं, जो कि
. हैa2 + b2 = c2
जहाँ a और b त्रिभुज की भुजाएँ हैं और c त्रिभुज का कर्ण है।
इसका उपयोग करके, हम a का उपयोग करके b और c के मानों की गणना करेंगे।
केस 1 - अगर a सम है,
c = (a2 + 4) + 1 b = (a2 + 4) - 1
केस 2 - अगर a विषम है,
c = (a2 + 1)/ 2 c = (a2 - 1)/ 2
कोणों को खोजने के लिए, हमें त्रिभुज की भुजाएँ ज्ञात करनी होंगी और इन मानों का उपयोग करके cos मान ज्ञात करना होगा।
cos(A) = b2 + c2 - a2 / 2bc cos(B) = a2 + c2 - b2 / 2ac cos(C) = a2 + b2 - c2 / 2ab
हमारे समाधान की कार्यप्रणाली को दर्शाने वाला कार्यक्रम,
उदाहरण
#include <bits/stdc++.h> #include <cmath> using namespace std; #define PI 3.1415926535 void printAngles(int a, int b, int c) { double x = (double)a; double y = (double)b; double z = (double)c; double A = (((double)(acos(( (y*y) + (z*z) - (x*x) ) / (2*y*z))))* 180 / PI); double B = ((double)(acos(( (x*x) + (z*z) - (y*y) ) / (2*x*z)))* 180 / PI); cout<<"Angles: A = "<<A<<", B = "<<B<<", C = 90"; } void printOtherSides(int n) { int b,c; if (n & 1) { if (n == 1) cout << -1 << endl; else{ b = (n*n-1)/2; c = (n*n+1)/2; } } else { if (n == 2) cout << -1 << endl; else { b = n*n/4-1; c = n*n/4+1; } } cout<<"Sides : a = "<<n<<", b = "<<b<<", c = "<<c<<endl; printAngles(n,b,c); } int main() { int a = 5; printOtherSides(a); return 0; }
आउटपुट
Sides : a = 5, b = 12, c = 13 Angles: A = 22.6199, B = 67.3801, C = 90