人がC++で最大1つとペアを形成できる場合のペアのカウント
これは、pairs =
の繰り返しを使用して解決できます。-
n=0または1の場合はcount=1(残り1人のみ)
-
人が独身のままの場合nはn-1に減らされます
-
残りのペアリングの残りの人の残り=n-2
count =makePairs(p-1)+(p-1)* makePairs(p-2);
-
例を挙げて理解しましょう。
入力 −人=3
出力 −ペアを作る方法の数− 4
説明 −
If three persons are a,b,c then ways of pairing could be: (a,b), (c) → c remained single (a,c), (b) → b remained single (b,c), (a) → a remained single (a),(b),(c) → all remained single Total ways = 4
入力 −人=2
出力 −ペアを作る方法の数− 2
説明 −
I persons are a,b then ways of pairing could be − (a,b) → both paired (a),(b) → both remained single Total ways = 2
以下のプログラムで使用されているアプローチは次のとおりです
-
参加者の数を格納するために整数の人を取ります。
-
関数makePairs(int p)は必要ありません。入力としての人の数と、彼らが自分自身をペアにすることができる方法の数を返します。
-
初期カウントを0とします。
-
p =0または1の場合、単一のままにする唯一の方法は1です。
-
それ以外の場合は、シングルのままにすることを選択できます。残りの(p-1)は、(p1)* makePairs(p-2)を使用してペアを検索します。
-
countの最終値はnoとして返されます。最後にペアリングする方法の例。
例
#include<iostream> using namespace std; int makePairs(int p){ int count=0; // Base condition if (p==0 || p==1) { count=1; } else { count=makePairs(p-1) + (p-1)*makePairs(p-2); } return count; } int main(){ int persons = 5; cout <<"Number of ways to make pair ( or remain single ):"<<makePairs(persons); return 0; }
出力
上記のコードを実行すると、次の出力が生成されます-
Number of ways to make pair ( or remain single ): 26
-
C++で最も水が多いコンテナ
コンテナの壁の高さの配列が与えられます。目標は、最大量の水を入れることができる容器を見つけることです。壁の高さは配列の要素であるため、壁の間の距離は2つの壁の間の幅と見なされます。たとえば、高さArr[i]とArr[j]の壁の間にj-i幅があります(0 <=i
-
STLでペアを実装するC++プログラム
ペアは、2つのデータオブジェクトで構成される単純なコンテナです: ‘first’ = The first element is referenced as ‘first’ ‘second’ = the second element and the order is fixed (first, second). ペアの割り当て、比較、コピーが可能です。タイプが異なる可能性のある2つの値を組み合わせるために使用されます。 構文は :ペア変数名(データ値1、データ値2)。 アルゴリズム Begin Write pair