इस समस्या में, हमें एक पूर्णांक a दिया जाता है जो समकोण त्रिभुज की एक भुजा को दर्शाता है। हमें जांचना है कि क्या भुजा a के साथ एक समकोण त्रिभुज बनाना संभव है। यदि संभव है, तो समकोण त्रिभुज की अन्य दो भुजाएं और कोण ढूंढें।
आइए एक उदाहरण से समस्या को समझते हैं,
इनपुट
a = 5
आउटपुट
भुजाएं : 5, 12, 13 कोण : 67.38, 22.62, 90
व्याख्या
समकोण की भुजाएं 52 + 122 = 132 के रूप में पाई जाती हैं और इन भुजाओं का उपयोग करके हम कोण ढूंढ सकते हैं, Sin-1 (5/13) और 90 - Sin-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, b = (a2 - 1)/ 2
कोण ढूंढने के लिए, हमें त्रिभुज की भुजाएं ढूंढनी होंगी और इन मानों का उपयोग करके कोसाइन मान ढूंढने होंगे।
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