C++中從兩組人員中最多可組建3人團隊的數量


在這個問題中,我們給定兩個整數N和M,N是第一組的人數,M是第二組的人數。我們的任務是建立一個程式來查詢從兩組中最多可以組建的3人團隊的數量。

我們將透過從這些組中選擇一個人來建立3人團隊,以便可以組建最多的團隊。每個團隊必須至少有一名來自每個組的人員。

讓我們舉個例子來理解這個問題:

輸入 - 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名成員來建立團隊。並且更新每個組的人員數量。 此外,我們將維護一個團隊計數,並在每次建立團隊後遞增它,直到無法建立團隊為止。

示例

程式用於查詢從兩組中最多可以組建的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

更新於:2020年6月3日

914 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.