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

更新于:30-3-2022

200 次浏览

开启您的 职业道路

通过完成课程获得认证

开始
广告