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

C++で長方形を作成する


特定の長方形のウェブページ領域があるとすると、私たちの仕事は、次の要件を満たす長さLと幅Wの長方形のウェブページをデザインすることです-

  • Webページの面積は、指定されたターゲット面積と同じである必要があります。

  • 幅Wは長さLより大きくてはならず、L>=Wです。

  • LとWの差はできるだけ小さくする必要があります。

したがって、入力が4のような場合、ターゲット領域が4であるため、出力は[2,2]になり、それを構築するためのすべての可能な方法は[1,4]、[2,2]、[4]です。 、1]。ここでは、要件に従って、2、[1,4]は違法です。要件3によると、[4,1]は[2,2]と比較して適切ではありません。したがって、長さLは2、幅Wは2です。

これを解決するには、次の手順に従います-

  • iを初期化する場合:=面積の平方根、i> 0の場合、更新(iを1つ減らす)、実行-

    • area mod iが0と同じ場合、-

      • 配列vを定義し、{area / i、i}

        を挿入します
      • vを返す

  • 戻り値{-1、-1}

理解を深めるために、次の実装を見てみましょう-

#include <bits/stdc++.h>
using namespace std;
void print_vector(vector<auto> v){
   cout << "[";
   for(int i = 0; i<v.size(); i++){
      cout << v[i] << ", ";
   }
   cout << "]"<<endl;
}
class Solution {
public:
   vector<int> constructRectangle(int area) {
      for (int i = sqrt(area); i > 0; i--) {
         if (area % i == 0) {
            vector<int> v{ area / i, i };
            return v;
         }
      }
      return { -1, -1 };
   }
};
main(){
   Solution ob;
   print_vector(ob.constructRectangle(4));
}

入力

4

出力

[2, 2, ]

  1. C++で六角形に内接する最大の三角形の面積

    ここでは、正六角形に内接する最大の三角形の領域が表示されます。六角形の各辺は「a」であり、三角形の各辺は「b」です。 この図から、六角形の1つの辺を使用して1つの三角形を作成すると、これらの2つの三角形が各辺を2つの部分に分割していることがわかります。 2つの直角三角形も見ることができます。ピタゴラスの公式から、次のように言うことができます- したがって、面積は- 例 #include <iostream> #include <cmath> using namespace std; float area(float a) {   &nbs

  2. C++を使用して楕円の領域を見つけるプログラム

    ここでは、C++を使用して楕円の面積を取得する方法を説明します。楕円にはさまざまな部分があります。これらは以下のようなものです。 キーポイント 説明 センター 楕円の中心。また、2つの焦点を結ぶ線分の中心でもあります。 主軸 楕円の最長直径 nmemb これは要素の数であり、各要素のサイズはサイズです。 バイト。 短軸 楕円の最小直径 コード tを指す線分 フォーカス 図で示されている2つのポイント ロータス直腸 蓮の直腸は、焦点を通り、楕円の主軸に垂直な線です。 楕円の面積はΠ𝜋 ∗𝑎a∗b𝑏 サンプルコード #include <iostre