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

C++で特定の周囲長で可能な直角三角形の数を数えます


三角形の周囲長Pが与えられます。周囲長は、三角形のすべての辺の合計です。目標は、同じ周囲長を持つ直角三角形の数を見つけることです。

三角形の辺がa、b、cの場合。次に、a + b + c=Pおよびa2+b2 =c2(a、b、およびcの任意の組み合わせに対するピタゴラスの定理)

これを確認するには、aを1からp / 2に、bをa+1からp/3に変更します。次に、c =p-a-b(a + b + c =p)

すべての直角三角形に、ピタゴラスの定理を適用します。 a、b、cの値は、任意の2つの辺の合計が常に3分の1より大きい三角形を形成する条件を満たす必要があります。

例を挙げて理解しましょう。

入力 −周囲長P =12

出力 −直角三角形の総数-1

説明

a + b + c=Pおよびa 2 を満たすa、b、およびcの唯一の値 + b 2 =c 2 (また、任意の2> 3分の1の合計)は4、3、および5です。

4 + 3 + 5 =12、3 * 3 + 4 * 4 =5 * 5(9 + 16 =25)も3 + 4> 5、4 + 5> 3、3 + 5> 4

入力 −周囲長P =10

出力 −直角三角形の総数−0

説明

a + b + c=Pおよびa 2 を満たすことができるa、b、およびcの値はありません。 + b 2 =c 2

以下のプログラムで使用されているアプローチは次のとおりです

  • 指定された周囲の値を格納する整数変数の周囲を取ります。

  • 関数rightTriangles(int p)は、周囲長を入力として受け取り、可能な直角三角形の総数を返します。

  • 変数countは、可能な直角三角形の数を格納します。最初は0です。

  • a=1からp/2のforループ開始を使用する

  • ここでも、b =a+1からp/3のネストされたforループ開始を使用します(直角三角形では2つの辺が等しくなることはありません)

  • c=p-a-bを計算します。このa、b、cについて、(a + b> c &&b + c> a &&a + c> b)かどうかを確認します。

  • また、a * a + b * b ==c*cであるピタゴラスの定理も確認してください。真のインクリメントカウントの場合。

  • 最後に、戻り数には、特定の周囲で可能な直角三角形の数が含まれます。

  • 希望する結果としてカウントを返します。

−ピタゴラスの定理をチェックして、a、b、cの1つの組み合わせのみを調べて、一意の結果を得ます。

#include <bits/stdc++.h>
using namespace std;
int rightTriangles(int p){
   int count = 0;
   int c=0;
   for( int a=1;a<p/2;a++){
      for(int b=1;b<p/3;b++){
         c=p-a-b;
         if( a+b>c && b+c>a && a+c>b) //condition for triangle{
            if( (a*a+b*b)==c*c ) //pythagoras rule for right triangles
               { ++count; }
         }
      }
   }
   return count;
}
int main(){
   int perimeter= 12;
   cout << "Total number of right triangles that can be formed: "<<rightTriangles(perimeter);
   return 0;
}

出力

上記のコードを実行すると、次の出力が生成されます-

Total number of right triangles that can be formed: 1

  1. C++でmが同一線上にある合計nポイントの三角形の数

    2D平面上の点の数を表す2つの変数nとmが与えられます。 n個のポイントのうち、m個のポイントは同一線上にあります。目標は、これらのn個の点を使用して形成できる三角形の数を見つけることです。 同一線上の点 −同じ線上にある点は同一線上にあると呼ばれます。ポイントAとBは同一線上にあります。 n =4(A、B、C、D)の場合、m =2(A、B) 三角形の数- 4から任意の3つのポイントを選択=4C 3 ただし、同一線上の点は三角形を形成できないため、上記でカウントされる可能性のある三角形を削除します=2C 3 三角形の合計=4C 3 --2C 3 =4-0 =4

  2. C++で指定されたサイズの長方形内で可能な菱形の数を数えます

    高さX幅の寸法の長方形が与えられます。長方形は、点(0,0)を左下隅に持つ2D座標系で表されます。したがって、目標は、これらすべての条件が満たされるように、この長方形内で可能な菱形の数を数えることです- ひし形の面積は0を超えています。 ひし形の対角線はx軸とy軸に平行です。 ひし形には、すべてのコーナーの整数座標があります。 例を挙げて理解しましょう 入力 −長さ=3幅=3 出力 −指定されたサイズの長方形内で可能な菱形の数は次のとおりです。4 説明 −下の図には、height =width=3の長方形があります。また、面積が0を超え、対角線が両方の軸に平行(