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 次瀏覽

開啟您的 職業道路

透過完成課程獲得認證

開始
廣告