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

C++での四辺形の最大面積


問題の説明

四辺形a、b、c、dの4つの辺が与えられた場合、与えられた辺から可能な四辺形の最大面積を見つけます。

アルゴリズム

以下のブラーマグプタの公式を使用して、この問題を解決できます-

√(s-a)(s-b)(s-c)(s-d)

上記の式では、sは半周長です。次のように計算されます-

S =(a + b + c + d)/ 2

例を見てみましょう-

#include <bits/stdc++.h>
using namespace std;
double getMaxArea(double a, double b, double c, double d) {
   double s = (a + b + c + d) / 2;
   double area = (s - a) * (s - b) * (s - c) * (s - d);
   return sqrt(area);
}
int main() {
   double a = 1, b = 2.5, c = 1.8, d = 2;
   cout << "Maximum area = " << getMaxArea(a, b, c, d) << endl;
   return 0;
}

出力

Maximum area = 3.05

  1. C++の長方形エリアII

    (軸に沿った)長方形のリストがあるとします。ここで、各rectangle [i] ={x1、y1、x2、y2}です。ここで、(x1、y1)は左下隅のポイントであり、(x2、y2)は右上隅のポイントです。 i番目の長方形。 平面内のすべての長方形でカバーされる総面積を見つける必要があります。答えは非常に大きい可能性があるため、モジュロ10 ^ 9+7を使用できます。 したがって、入力が次のような場合 その場合、出力は6になります。 これを解決するには、次の手順に従います- m =10 ^ 9 + 7 関数add()を定義します。これには、a、b、が必要です。 r

  2. C++の長方形領域

    2D平面内の2つの直線状の長方形で覆われる総面積を求めたいとします。ここで、各長方形は、図に示すように、左下隅と右上隅によって定義されます。 これを解決するには、次の手順に従います- =HまたはD<=Fの場合、 return(C – A)*(D – B)+(G – E)*(H – F) 配列hを定義し、A、C、E、Gをhに挿入します 配列vを定義し、B、D、F、Hをvに挿入します h配列の並べ替えとv配列の並べ替え temp:=(h [2] – h [1])*(v [2] – v [1]) 合計:=temp 合計:=合計+(C – A