এই সমস্যায়, আমাদেরকে একটি পূর্ণসংখ্যা দেওয়া হয়েছে যা একটি সমকোণ কোণটির এক দিকে নির্দেশ করে। আমাদের চেক করতে হবে বাহুর 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