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

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


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

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

入力

a = 5

出力

Sides : 5, 12, 13

説明

直角の辺は5 2 として検出されます + 12 2 =13 2

ソリューションアプローチ

この問題の簡単な解決策は、ピタゴラスの定理を使用することです。直角三角形の辺はピタゴラスの定理に従うことがわかっています。これは

a2 + b2 = c2

ここで、aとbは三角形の辺であり、cは三角形のhypotenuseです。

これを使用して、aを使用してbとcの値を計算します。

ケース1

If a is even,
c = (a2 + 4) + 1
b = (a2 + 4) - 1

ケース2

If a is odd,
c = (a2 + 1)/ 2
c = (a2 - 1)/ 2

ソリューションの動作を説明するプログラム

#include <bits/stdc++.h>
#include <cmath>
using namespace std;
#define PI 3.1415926535
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;
}
int main() {
   int a = 5;
   printOtherSides(a);
   return 0;
}

出力

Sides : a = 5, b = 12, c = 13

  1. C++で直角二等辺三角形に収まる正方形の最大数

    与えられたタスクは、底辺が「s」の二等辺三角形の中に収まる、辺が「a」の正方形の最大数を見つけることです(二等辺三角形には少なくとも2つの等しい辺があります)。 例を使用して、私たちがしなければならないことを理解しましょう: 入力 s=5, a=1 出力 10 説明 −基数の平方数は、sをaで割り、1を引くことで計算できます。したがって、基数の平方数=5/1 – 1 =4 同様に、下の4つの正方形を配置すると、base(s-a)の新しい二等辺三角形が得られます。次に同じ手順を繰り返して3つの正方形を取得し、1つの正方形が上に配置されるまで続けます。 入力 s=7, a=2 出力

  2. C++で三角形の図心を見つけるプログラム

    この問題では、三角形の3つの頂点の座標を示す2D配列が与えられます。私たちのタスクは、C++で三角形のセントロイドを見つけるプログラムを作成することです。 セントロイド 三角形の3つの中央値は、三角形の3つの中央値が交差する点です。 中央値 三角形の頂点は、三角形の頂点とその反対側の線の中心点を結ぶ線です。 問題を理解するために例を見てみましょう 入力 (-3, 1), (1.5, 0), (-3, -4) 出力 (-3.5, -1) 説明 Centroid (x, y) = ((-3+2.5-3)/3, (1 + 0 - 4)/3) = (-3.5, -1) ソリューションアプロ