在这个问题中,我们给了两个整数N和M,N是组1中的人数,M是组2中的人数。我们的任务是创建一个程序以查找最大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