C++ 代码以查找竞赛中不同的获胜者和非获胜者的数量
假设我们有两个数字 n 和 k,竞赛中有 n 个学生。一些将收到纪念品,一些将获得证书,而另一些则不会收到任何东西。收到物品的人被称为赢家。但有一些规则用于计算纪念品和证书的数量。证书的数量必须恰好比纪念品的数量大 k 倍。获胜者数量不得超过 n/2。获奖者数量也可能为 0。我们必须根据这些规则确定尽可能多的获胜者数量。然后计算带纪念品的的学生数量、带证书的学生数量和未获奖的学生数量。
因此,如果输入为 n = 18;k = 2,则输出为 [3, 6, 9]。
步骤
为解决这个问题,我们将遵循以下步骤 -
x := (n / 2) / (1 + k) return x, (k * x) and (n - (x + (k * x)))
示例
让我们看看以下实现以更好地理解 -
#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; int k = 2; solve(n, k); }
输入
8, 2
输出
3, 6, 9
广告