Computer >> Máy Tính >  >> Lập trình >> C ++

Số cặp tối thiểu và tối đa trong m đội gồm n người trong C ++

Tuyên bố vấn đề

N những người tham gia cuộc thi được chia thành M các đội theo cách nào đó để mỗi đội có ít nhất một người tham gia. Sau cuộc thi, mỗi cặp người tham gia trong cùng một đội đã trở thành bạn của nhau.

Nhiệm vụ của bạn là viết một chương trình để tìm ra số lượng cặp bạn bè tối thiểu và tối đa có thể hình thành vào cuối cuộc thi.

Thuật toán

1. We can obtain max pairs using below formula:
maxPairs = ((n – m) * (n – m + 1)) / 2
2. We can obtain min pairs using below formula:
minPairs = m * (((n - m) / m + 1) * ((n - m) / m)) / 2 + ceil((n - m) / double(m)) * ((n - m) % m);

Ví dụ

#include <iostream>
#include <cmath>
using namespace std;
void getPairs(int n, int m){
   int maxPairs = ((n - m + 1) * (n - m)) / 2;
   int minPairs = m * (((n - m) / m + 1) * ((n - m) / m)) / 2 + ceil((n - m) / double(m)) * ((n - m) % m);
   cout << "Minimum pairs = " << minPairs << "\n";
   cout << "Maximum pairs = " << maxPairs << "\n";
}
int main(){
   getPairs(3, 2);
   return 0;
}

Đầu ra

Khi bạn biên dịch và thực thi chương trình trên. Nó tạo ra kết quả sau−

Minimum pairs = 1
Maximum pairs = 1