C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++で直角三角形の他の2つの辺と角度を見つけます


この問題では、直角三角形の片側を表す整数が与えられます。辺がaの直角三角形ができるかどうかを確認する必要があります。可能であれば、直角三角形の他の2つの辺と角度を見つけます。

問題を理解するために例を見てみましょう

入力

a = 5

出力

Sides : 5, 12, 13
Angles : 67.38, 22.62, 90

説明

直角の辺は5 2 として検出されます + 12 2 =13 2 そして、これらの側面を使用して、角度が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
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

  1. C++で特定の円の2つの部分の角度の最小差を見つけるプログラム

    この問題では、円の角度に基づいて円の一部を表す配列が与えられます。私たちのタスクは、C++で特定の円の2つの部分の角度の最小差を見つけるプログラムを作成することです 。 問題の説明 −配列内の円のすべての部分の角度が与えられます。作った2つのピースの角度の差が最小になるようにピースを結合する必要があります。 問題を理解するために例を見てみましょう 入力 ang[] = {90, 45, 90, 135} 出力 90 説明 1番目と2番目を一緒に取る、つまり90 + 45=135。 3番目と4番目を一緒に取る、つまり90 + 135 =225 差=225-135=90 ソリ

  2. 直角三角形の中点と底の間の角度を見つけるPythonプログラム

    直角三角形の2つの辺があり、これらの辺はABとBCであるとします。斜辺ACの中点がMであると考えてください。MとBCの間の角度を見つける必要があります。 したがって、入力がab =6 bc =4の場合、ab / bcのarc_tanは0.9828ですが、度では56.31であるため、出力は56.309932474020215になります。 これを解決するには、次の手順に従います- ans:=arc-tan(ab / bc) 度でansを返す 例 理解を深めるために、次の実装を見てみましょう from math import atan, pi def solve(ab, bc):