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

C++での長さと幅の差を最小限に抑えた長方形


入力として長方形の領域を指定します。目標は、長さと幅の差が最小になるように長方形の辺を見つけることです。

長方形の面積=長さ*幅。

入力 −面積=100

出力 −最小の差のある長方形の側面:

長さ=10、幅=10

説明 −面積=100の辺。

2〜50、4〜25、5〜20、10〜10。最小の差のある辺は10〜10で、差は0です。ご存知のとおり、正方形はすべての辺が等しい長さの長方形です。

入力 −面積=254

出力 −最小の差のある長方形の側面:

長さ=127、幅=2

説明 −面積254の長方形を作成するために、最小の差を持つ可能な辺のみが127と2です。

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

ここでは、面積の平方根値を見つけ、そこから1までトラバースして、差が最小で面積=入力面積の値を見つけます。

  • 整数変数Areaを入力として受け取ります。

  • 関数rectangleSides(int area1)は、area1を取り、長さと幅の差を最小限に抑えて、長方形の辺の長さを出力します。

  • 整数の長さ、幅、tmp1を取ります。

  • tmp1 =ceil(sqrt(area1))

    を設定します
  • forループを使用してトラバースします(int i =tmp1; i> 0; i-)。

  • (area1%i ==0)の場合、length =area/iおよびwidth=iを設定します。

  • breakステートメントを使用して反復を停止します。

  • 辺の長さと幅を印刷します。

#include <bits/stdc++.h>
using namespace std;
void rectangleSides(int area1){
   int length, breadth;
   int tmp1 = ceil(sqrt(area1));
   for (int i = tmp1; i > 0; i--) {
      if (area1 % i == 0) {

         length = ceil(area1 / i);
         breadth = i;
         break;
      }
   }
   cout<<"Sides of Rectangle with minimum difference :"<<endl;
   cout << "Length = " << length << ", Breadth = "   << breadth << endl;
}
int main(){
   int Area = 140;
   rectangleSides(Area);
   return 0;
}

出力

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

Sides of Rectangle with minimum difference :
Length = 14, Breadth = 10

  1. C++の++iとi++の違いは何ですか?

    ++のサフィックスバージョンとプレフィックスバージョンには大きな違いがあります。 プレフィックスバージョン(つまり、++ i)では、iの値がインクリメントされ、式の値はiの新しい値になります。したがって、基本的には、最初にインクリメントしてから、式に値を割り当てます。 postfixバージョン(つまり、i ++)では、iの値はインクリメントされますが、式の値はiの元の値です。したがって、基本的には、最初に式に値を割り当ててから、変数をインクリメントします。 例 理解を深めるために、いくつかのコードを見てみましょう- #include<iostream> using name

  2. C ++のドット(。)演算子と->の違いは何ですか?

    ドットと矢印の演算子は、どちらもC++でクラスのメンバーにアクセスするために使用されます。それらはさまざまなシナリオで使用されます。 C ++では、class、struct、またはunionとして宣言された型は、「クラス型」と見なされます。したがって、以下は3つすべてを指します。 a.bは、bがオブジェクトのメンバー(またはオブジェクトへの参照[1])である場合にのみ使用されます。したがって、a.bの場合、aは常にクラスの実際のオブジェクト(またはオブジェクトへの参照)になります。 a→bは基本的に(* a).bの省略表記です。つまり、aがオブジェクトへのポインタである場合、a→bはポイ