Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

C++: Tìm số lượng giải thưởng và người không thắng cuộc thi

Bài toán: Có n học sinh, k tỷ lệ chứng chỉ/meda. Số chứng chỉ = k × số meda. Số người thắng ≤ n/2. Tìm số meda, chứng chỉ, không thắng tối đa.

Giải pháp

Gọi x = số meda. Thì chứng chỉ = k*x. Tổng thắng = x + k*x = x*(k+1) ≤ n/2.

→ x = floor((n/2) / (k+1)).

Kết quả: x, k*x, n - x*(k+1).

Code C++

#include <bits/stdc++.h>
using namespace std;

void solve(int n, int k) {
    int x = (n / 2) / (1 + k);
    cout << x << ", " << (k * x) << ", " << (n - (x + k * x));
}

int main() {
    int n = 18, k = 2;
    solve(n, k); // Output: 3, 6, 9
    return 0;
}

Input/Output

Input: 18, 2
Output: 3, 6, 9

Ý nghĩa: 3 meda, 6 chứng chỉ, 9 không thắng.