Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

จำนวนทีม 3 คนสูงสุดที่จัดได้จากสองกลุ่มใน C++

คำอธิบายปัญหา

ในปัญหานี้ เราได้รับจำนวนเต็มสองจำนวน N และ M โดย N คือจำนวนคนในกลุ่ม 1 และ M คือจำนวนคนในกลุ่ม 2 งานของเราคือสร้างโปรแกรมเพื่อหาจำนวนทีม 3 คนสูงสุดที่จัดได้จากสองกลุ่ม

เราจะสร้างทีม 3 คนโดยเลือกคนจากกลุ่มเหล่านี้ เพื่อให้ได้ทีมมากที่สุด แต่ละทีมต้องมีคนอย่างน้อย 1 คนจากแต่ละกลุ่ม

ตัวอย่าง

นำเข้า – N = 5, M = 3

ผลลัพธ์ – 2

คำอธิบาย –

ทีมจะเป็นดังนี้:

ทีม 1: กลุ่ม 1 สมาชิก 2 คน ; กลุ่ม 2 สมาชิก 1 คน เหลือกลุ่ม 1 = 3 ; เหลือกลุ่ม 2 = 2 ทีม 2: กลุ่ม 1 สมาชิก 2 คน ; กลุ่ม 2 สมาชิก 1 คน เหลือกลุ่ม 1 = 1 ; เหลือกลุ่ม 2 = 1 ไม่สามารถจัดทีม 3 คนเพิ่มได้อีก

เพื่อแก้ปัญหานี้ เราจะสร้างทีมโดย นำ 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