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

C++で指定された要素のセットを持つ長方形と正方形の可能な数


この問題では、n本の棒の長さを示すN個の整数の配列が与えられます。私たちの仕事は、与えられた長さの棒から作成できる長方形と正方形の数を印刷することです。

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

入力 −配列={5、5、7、7、1、4}

出力 − 1

説明 −辺が5 577の長方形。

この問題を解決するには、長方形や正方形が可能かどうかを確認する必要があります。

ここで、正方形または長方形を作成するには、同じ長さの2つのスティックが必要です。長方形の場合は2つ、正方形の場合は4つです。ここで、配列で、同じ長さのスティックのペアをチェックする必要があります。この検索を簡単にするために、配列を並べ替えてからペアを見つけます。ペアの総数の半分は、作成できる正方形または長方形の数になります。

ソリューションの実装を示すプログラム

#include <bits/stdc++.h>
using namespace std;
int countRecSqr(int sticks[], int n) {
   sort(sticks, sticks + n);
   int pairs = 0;
   for (int i = 0; i < n - 1; i++) {
      if (sticks[i]==sticks[i + 1]) {
         pairs++;
         i++;
      }
   }
   return pairs / 2;
}
int main() {
   int sticks[] = { 2, 2, 4, 4, 4, 4, 6, 6, 6, 7, 7, 9, 9 };
   int n = sizeof(sticks) / sizeof(sticks[0]);
   cout<<"The total number of squares or rectangles that can be created is ";
   cout<<countRecSqr(sticks, n);
   return 0;
}

出力

The total number of squares or rectangles that can be created is 3

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

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

  2. C++で奇数と偶数のノードを含むすべてのレベルを出力します

    この問題では、ツリーが与えられます。そして、偶数のノードと奇数のノードを含むすべてのレベルを印刷する必要があります。 概念をよりよく理解するために例を見てみましょう 出力- Levels with odd number of nodes: 1, 3, 4 Levels with even number of nodes: 2 説明 −第1レベルには1つの要素(奇数)、第2レベルには2つの要素(偶数)、第3レベルには3つの要素(奇数)、第4レベルには1つの要素(偶数)が含まれます。 さて、この問題を解決するために。各レベルでノードの数を見つけ、それに応じて偶数-奇数レベルを出力す