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

C++で長方形の正方形の数を数える


L> =Bとなるように、長さL、幅Bの長方形が与えられます。目標は、サイズLXBの長方形が収容できる正方形の数を見つけることです。

C++で長方形の正方形の数を数える

上の図は、サイズ3 X 2の長方形を示しています。2、2X2の正方形、6,1X1の正方形があります。

総正方形=6+ 2=8。

  • サイズLXBのすべての長方形には、1X1の正方形のL*B数があります。

  • 最大の正方形のサイズはBXBです。

  • L =B =1の場合、正方形=1。

  • L =B =2の場合、正方形=1 + 4 =5(2X2の1、1X1の4)

  • L =B =3の場合、正方形=1 + 4 + 9 =14(3X3の​​1、2X2の4、1X1の9)

  • L =B =4の場合、正方形=1 + 4 + 9 + 16 =30(4X4の1、3X3の4、2X2の9、1X1の16)

  • ……………..

  • BXBの長方形ごとに、正方形の数は

    です。
for ( i=1 to B )
No. of squares + = i*i.

L>Bの場合。より多くの正方形が追加されます。 L =B + 1の場合(Bより1列余分に)。次に、追加される正方形はL +(L-1)+…。+ 3 + 2 + 1 =L(L + 1)/ 2

になります。

したがって、追加のL-B列の場合、追加される正方形は(L-B)*(B)(B + 1)/ 2

になります。
  • 合計の正方形は、BXB +(L-B)*(L)(L + 1)/2の正方形になります。

  • 手順8で、シリーズ(1 + 4 + 9 + ...... BXB)に式B(B + 1)(2B + 1)/6を使用することもできます。

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

入力 − L =4、B =2

出力 −長方形の正方形の数− 11

説明 −1X1の8つの正方形と2X2の3つの正方形。

C++で長方形の正方形の数を数える

入力 − L =3、B =3

出力 −長方形の正方形の数− 14

説明 − 1X1の9平方、2X2の4、3X3の1。

C++で長方形の正方形の数を数える

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

  • 長方形の寸法には整数の長さと幅を使用します。

  • 関数numofSquares(int l、int b)は次元を取り、サイズlXbの長方形の正方形の数を返します。

  • 最大の正方形bXbの場合。 1からbへのforループを使用し、各i*iを正方形に追加します。

  • ここで、l>bの場合。新しく追加された正方形は(l-b)(b)(b + 1)/2になります。これを正方形に追加します。

  • 希望する結果として正方形を返します。

−長さを保つ>=幅

#include<iostream>
using namespace std;
int numofSquares(int l, int b){
   int squares=0;
   for(int i=1;i<=b;i++) //squares inside biggest square of size breadth X breadth{
      squares += i*i;
   }
   squares+=(l-b)*b*(b+1)/2;
   return squares;
}
int main(){
   int length = 5, breadth = 4; //keep length always >= breadth
   cout << "Count of squares is :"<< numofSquares(length,breadth);
}

出力

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

Count of squares is :40

  1. C++の数値の階乗で後続ゼロをカウントします

    入力として整数を指定します。目標は、その数に対して計算された階乗の後続ゼロの数を見つけることです。数値Nの階乗は、[1、N]の範囲内のすべての数値の積です。 数値が10の倍数であるか、因数ペア(2,5)がある場合にのみ、末尾のゼロが得られることがわかっています。 5を超える任意の数のすべての階乗で、その数の素因数分解に5を超える2の数があります。数値を5の累乗で割ると、その因数で5の数が得られます。したがって、5の数は、後続のゼロの数を示します。 例 入力 number=6 出力 Count of trailing zeros in factorial of a number are:

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

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