C++で指定されたサイズの長方形内で可能な菱形の数を数えます
高さX幅の寸法の長方形が与えられます。長方形は、点(0,0)を左下隅に持つ2D座標系で表されます。したがって、目標は、これらすべての条件が満たされるように、この長方形内で可能な菱形の数を数えることです-
-
ひし形の面積は0を超えています。
-
ひし形の対角線はx軸とy軸に平行です。
-
ひし形には、すべてのコーナーの整数座標があります。
例を挙げて理解しましょう
入力 −長さ=3幅=3
出力 −指定されたサイズの長方形内で可能な菱形の数は次のとおりです。4
説明 −下の図には、height =width=3の長方形があります。また、面積が0を超え、対角線が両方の軸に平行(整数座標)の4つの菱形を見ることができます-
First [ (1,0), (2,1), (1,2), (0,1) ] Second [ (2,0), (3,1), (2,2), (1,1) ] Third [ (2,1), (3,2), (2,3), (1,2) ] Fourth [ (1,1), (2,1), (1,2), (0,1) ]
入力 −長さ=2幅=3
出力 −指定されたサイズの長方形内で可能な菱形の数は次のとおりです。2
説明 −下の図には、height =2 width=3の長方形があります。また、中に2つのひし形が見えます
以下のプログラムで使用されているアプローチは次のとおりです
非ゼロの領域と整数の座標を持つ最初のひし形は、右上隅の(2,2)から始まります。インデックスi=j=2からi<=lengthおよびj<=lengthへのトラバースを開始します。 iとjを2インクリメントして、偶数の長さを固定します(整数座標の場合)。これらの対角線を持つ菱形の数は、(height-i + 1)X(width-j + 1)になります。
-
長さと幅を整数とします。
-
関数possible_rhombus(int length、int width)は長方形の寸法を取り、上記のすべての条件に従う長方形内で可能な菱形の数を返します。
-
初期カウントを0とします。
-
i=2からi<=lengthおよびj=2からj<=widthまでトラバースします。
-
i、jごとに、temp_1 =length-i+1およびtemp_2=width-j+1を取得します
-
カウントするtemp_1*temp_2を追加します。
-
iとjを2ずつインクリメントします(整数座標の場合)。
-
結果として最後にカウントを返します。
例
#include <bits/stdc++.h> using namespace std; long long possible_rhombus(int height, int width){ long long count = 0; for (int i = 2; i <= height; i += 2){ for (int j = 2; j <= width; j += 2){ int temp_1 = height - i + 1; int temp_2 = width - j + 1; count += temp_1 * temp_2; } } return count; } int main(){ int height = 4, width = 4; cout<<"Count of number of rhombi possible inside a rectangle of given size are: "<<possible_rhombus(height, width); return 0; }
出力
上記のコードを実行すると、次の出力が生成されます-
Count of number of rhombi possible inside a rectangle of given size are: 16
-
C++のグリッドで指定された方向に可能な移動をカウントします
サイズnxmのグリッドと開始点x、yを表す2つの変数nとmです。 また、移動((1,1)、(2,2))などとしてグリッド内を移動するために実行できるステップ/移動のペアも指定されます。移動の各ペアは、x、y軸で実行されるステップの単位を表します。目標は、境界[1、n] X [1、m]内のグリッド内をトラバースするために実行できる合計ステップを見つけることです。nが5、mが4、現在の位置が2、2で、選択されたステップが( 1、-1)次に、このステップを1回実行すると、(3,1)になります。このステップを再度実行すると、(4、-1)になります。これは、-1が範囲外であるため無効です。 例
-
C++で長方形の正方形の数を数える
=Bとなるように、長さL、幅Bの長方形が与えられます。目標は、サイズLXBの長方形が収容できる正方形の数を見つけることです。 上の図は、サイズ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、1