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

C++の2つのグループから形成される3人のチームの最大数


この問題では、2つの整数NとMが与えられます。Nはグループ1の人数、Mはグループ2の人数です。 2つのグループから形成された3人のチームの最大数を見つけるプログラム。

これらのグループから最大のチームを作ることができる人を選んで、3人のチームを作ります。各チームには、各グループから少なくとも1人が必要です。

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

入力 − n =5、M =3

出力 − 2

説明

チームは次のようになります-

Team 1: Group 1 Member->2 ; Group 2 Member->1
Left in Group 1 = 3 ; left in Group 2 = 2
Team 2: Group 1 Member->2 ; Group 2 Member->1
Left in Group 1 = 1 ; left in Group 2 = 1
No more teams of 3 can be formed.

この問題を解決するために、 1人のメンバーからなるグループを作成し、他のグループから2人のメンバーを作成します。 そして、各グループの人数を更新します。 また、チームの数を維持し、チームの作成ごとにそれを増やします チームの作成が可能になるまで。

2つのグループから形成された3人のチームの最大数を見つけるプログラム-

#include <iostream>
using namespace std;
int CountTeams(int N, int M) {
   int teamCount = 0;
   while (N >= 1 && M >= 1 && N + M >= 3) {
      if (N > M) {
         N = N-2;
         M = M-1;
      }
      else {
         N = N-1;
         M = M-2;
      }
      teamCount++;
   }
   return teamCount;
}
int main() {
   int N = 5, M = 3;
   cout<<"The maximum number of 3-person teams is "<<CountTeams(N, M);
   return 0;
}

出力

The maximum number of 3-person teams is 2

  1. C++の配列の数字から形成される2つの数値の最小合計

    説明 0から9までの値を含む数字の配列が与えられます。タスクは、配列の数字から形成される2つの数値の可能な最小の合計を見つけることです。指定された配列のすべての桁を使用する必要があることに注意してください 例 入力配列が{7、5、1、3、2、4}の場合、最小合計は382であるため、135と247の2つの数値を作成できます。 アルゴリズム 配列を昇順で並べ替えます 並べ替えられた配列から交互に、つまり偶数と奇数のインデックスから数字を選択して、2つの数値を作成します 例 #include <bits/stdc++.h> using namespace std; int get

  2. C++のn人のmチームのペアの最小数と最大数

    問題の説明 N コンテストの参加者はMに分割されました 各チームに少なくとも1人の参加者がいるように、何らかの方法でチームを編成します。競技後、同じチームの参加者の各ペアが友達になりました。 あなたの仕事は、競争の終わりまでに形成された可能性のある友達のペアの最小数と最大数を見つけるプログラムを書くことです。 アルゴリズム 1. We can obtain max pairs using below formula: maxPairs = ((n – m) * (n – m + 1)) / 2 2. We can obtain min pairs using b